1 分词器中文词表如何组织?字典树(第一层通过字的编码找到位置,后面层数量少二分或顺序)
2 polygon查找 (0123对不规则多边形编码)
3 redis6.0 单线程-多线程(读写和协议解码多线程,命令执行依然单线程,避免并发控制)
4 redis脑裂(多master导致数据不一致,停止master写入,min-slave和timeout控制)
5 tddl-自增id 一次获取1000个,应用层内部分配
6 tddl- (phone,userId)查找userId,(userId,userInfo),如何在分表情况下通过手机号登录获取用户信息
7 G1
8 TCP:close wait
9 direct memory是如何管理?如何回收
10 phantom reference
11 parallelStream如何控制,1.ForkJoin的commonPool的参数,systemProps 2自定义ForkJoin,submit
12 秒杀的设计?如何利用缓存和mq,单条数据竞争太厉害,如何锁分解
13 线上机器配置,机器内存如何分配给jvm
14 Class.forName(控制initalize,控制ClassLoader,默认是调用类的ClassLoader),ClassLoader.loadClass(控制是否连接)
15netty的时间轮算法管理连接
16各种分布式一致性算法
17snowflake算法
18mysql b+比b好在哪里?B中间节点含value导致整体树更高
1 DDD
2 边缘触发,水平触发
3 StampedLock
4 业务系统何时拆分,何时合
5 业务流量增长:业务系统不断拆分,集群不断扩容,主从-分库分表-nosql(可做冷热,热数据nosql,冷数据放mysql)-es+redis
6 read/recv/recvfrom copy过程是否block
7 https
8 redis内存模型:默认用jemalloc内存分配器
cap在zk,hbase,es的体现
zk和es的leader选举
hbase的flush
mq处理堆积和顺序消费
tcp半连接队列
为什么不用http作为rpc的协议
跨代引用:回收young,young的对象引用老年代的对象,岂不要整个堆扫描,记忆集
判断单向链表有环,比如6字型
javaagent/attach
发布系统如何切流?
发布系统不可能控制各中间件的流量,如rpc或job
优雅发布:上线-rpc和job注册,下线-rpc和job解除注册
应用没有接入优雅发布?启动就直接注册,销毁时解除注册
异地多活怎么做的?
入口路由根据机房可用性和业务标识来路由, 应用集群没问题,数据集群双向复制(双master)保证各机房都有全量数据,mysql的如(主键冲突-如2个ezone+则步长为2+1个ezone从1开始+一个从2开始,2个 ezone 同时更新了同一笔数据-基于时间戳后修改的数据会被保留),zk/redis等类似
若个别应用特殊要求强一致性,单master,其余ezone放slave