Mysql引擎区别,聚簇索引是数据,非聚簇索引是引用,普通索引和主键索引两棵树,普通索引到主键索引有个回表,建立覆盖索引减少回表,利用前缀索引,注意索引顺序,隔离级别默认rr,事务依赖于mvcc,B+tree的好处,m叉树,降低树高,充分利用page读取,死锁的发生互相锁,索引检查,超时回滚(用它),事务的实现,mvvc快照; 写时写道pagecache,异步更新到磁盘。唯一索引写时性能差些,需要从磁盘读取数据判断唯一性。
Netty的线程模型(主从reactor线程模型),零拷贝(directbuffer到socket,减少了对象在堆内拷贝),重连实现,BIO/NIO/AIO的不同,一个eventloop在一个线程内,不会出现线程上下调度。bytebuffer可以将多个小对象合并,减少对象堆内复制,jni方式比java的ssl效率高
String,StringBuilder,StringBuffer区别,常量池
Thrift线程模型
gRPC和thrift的区别,PB为什么序列化性能高
文件中有30亿数如何去重
二叉树和红黑树
中级
Redis常用数据结构,分布式redis集群方案和实现,持久化机制,满容淘汰策略,为什么单线程实现,缓存降级,缓存穿透,缓存雪崩,key=x+1处理穿透和防刷方法,主从同步的原理,redis的key的寻址策略,master和slave如何保证数据一致性
消息队列:消息幂等实现,消息有序,消息堆积,如何自己实现一个消息队列,消息队列的高可用,重复消费
kafka效率高在哪,一个消费者对应一个partition的消息消费是绝对有序的(局部有序),多个消费者在全局消费消息不是绝对有序的
ES工作如何实现分布式,常用的配置项,数据量大时如何提高查询效率,倒排索引介绍,ES数亿数据和Mysql的不同,ES优势是什么,如何实现高效查询
Zk的原理,zab一致性,paxos,raft,区块链的一致性,分布式脑裂问题处理
HTTPS原理 http2原理,和websocket的区别 TCP面向连接的三次握手,为什么需要四次挥手,可靠性传输的粘包/拆包处理方案,面向连接的,流控控制(滑动窗口);
RPC框架原理和实现
如何理解restapi的幂等性
最终一致性的实现方式
分布式事务的实现
微服务和SOA的区别
服务拆分的原则
集群和负载均衡算法的实现
分库分表原则和设计
数据库锁实现方式,隔离级别,数据库的高并发怎么设计,如何做分库分表用过哪些中间件实现思路
分布式寻址的策略,一致性hash
性能指标,如何发现性能瓶颈,常见的调试手段,你在项目中如何进行性能调优,cpu100%排查,内存OOM排查
指标:QPS,tp50,tp99是多少,full Gc处理
常用的设计模式有哪些,单例的实现
分布式事务:2阶段,TCC,3阶段
Linux支持的常见几种IO模型,传统阻塞IO,非阻塞IO,IO多路复用,异步IO - 多路复用建立在epoll之上,最大的优势是可以在一个线程内同时处理多个Socket的IO请求,用户可以订阅事件,包括文件描述符或者IO可读可写,可连接的事件。