美文网首页
一个月复盘-问题

一个月复盘-问题

作者: 小周爱吃瓜 | 来源:发表于2022-03-26 19:02 被阅读0次
    • 分布式锁

    • 获取不到锁,redis需要不断计算时间,遍历上锁

    • zk只需要注册监听器

    • redis 分布式锁,主从同步过程,主节点宕机,未同步到从节点.

    • fullgc 心跳超时问题
      B抢到了A的锁,执行完释放之前的锁.

    • 红锁很受时钟依赖问题的影响.


    • Dubbo

    • Activate和Adaptive注解 spi扩展点

    • Spring

    三级缓存图问题:
    https://www.processon.com/diagraming/6187938f0791293fb6c62079

    • 三级缓存

    • 分库分表后的问题

    • 汇总查询

    • 主键重复

    • 数据库扩容

    • 数据一致性

    • 跨库跨表join
      (冗余的方式处理跨库跨表问题)

      • 全局表(字典表)
        (基础数据都会拷贝一份)

      • 字段冗余

      • 比如用户的信息:
        比如需要关联一部分的用户信息.
        内部admin_user(客服). 分库分表下去查询。数据量不大,变化不大的,我们可以做一份冗余的数据.

      • 什么情况下会搞一个服务去做这个是事?
        Mybatis底层是对JDBC的封装.

    改写DatsSource,Connection,MyBatis的插件也可以拦截sql执行过程.

    • Sharding-JDBC
    • 相当于是一个增强的JDBC
      DataSource --- > ShardingXXX (下同)
      Connection
      Statement
      ResultSet

    如何替换?
    MyBatis prepareStatement.
    替换成Sharding的Conneciton,DataSource,执行route方法的时候获取配置文件
    ,拼接成Sql 查询.
    解析,理由,优化,查询,汇总.

    • 事务问题
      一次插入2条数据,但是分布在不同服务器上,插入需要保证强一致性
    • Redis

    • 优化的点

    • 监控的点

    • ES 分布式集群调优策略

    • 写入的时候可以把副本数临时调成0


      Screen Shot 2022-03-25 at 11.24.23 PM.png

      写完后全部copy过去,这样省去了建立索引的部分.

    • 调整刷新的interval时间间隔
      参数默认是1s

    Screen Shot 2022-03-25 at 11.28.34 PM.png
    • include excludes 过滤字段

    • 适当的调大file system cache.

    • 批处理index,合并多个index到一个batch中去处理

    • ES 索引优化(读)

    • 查询时 Filter代替Query(Filter不会打分)

    • terms 和 keyword匹配,属于精准查询,搜索的性能
      类型映射成keyword后,性能可以提升30%.因为他是精准匹配.

    • 比如用户的数据 or,通配符匹配。我们推荐用户搜索该keyword,
      引导用户按照该方式去搜索.

    • Sql

    • 一条Sql语句的执行过程

    1. 为什么redo 需要2阶段提交?


      Screen Shot 2022-03-25 at 11.43.42 PM.png
    2. 一条SQL语句是如何执行的?


      Screen Shot 2022-03-25 at 11.44.24 PM.png

    HashMap

    • 扩容
      resize().

    • hashcode计算

     static final int hash(Object key) {
            int h;
            return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
        }
    
    Screen Shot 2022-03-26 at 4.35.18 PM.png

    如果 2 4 s
    h >>>16 将高位数据向低位迁移,这样高低位数据都能被计算在内。
    这样高低位的数据都会参与hash计算,这样的出来的hash值更加均匀。

    能够让数组位置 1 -- 16 中的链表分布更加均匀.

    TreeSet构造中含有TreeMap,其中有comparator进行排序.

    相关文章

      网友评论

          本文标题:一个月复盘-问题

          本文链接:https://www.haomeiwen.com/subject/vzsvdrtx.html