-
分布式锁
-
获取不到锁,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
-
include excludes 过滤字段
-
适当的调大file system cache.
-
批处理index,合并多个index到一个batch中去处理
-
ES 索引优化(读)
-
查询时 Filter代替Query(Filter不会打分)
-
terms 和 keyword匹配,属于精准查询,搜索的性能
类型映射成keyword后,性能可以提升30%.因为他是精准匹配. -
比如用户的数据 or,通配符匹配。我们推荐用户搜索该keyword,
引导用户按照该方式去搜索. -
Sql
-
一条Sql语句的执行过程
-
为什么redo 需要2阶段提交?
Screen Shot 2022-03-25 at 11.43.42 PM.png -
一条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进行排序.
网友评论