零、高并发系统构建
原始—》服务集群分流—》数据库分库分表、读写分离—》redis缓存分读的压力—》mq分写的压力
一、zookeeper
- 高可用,读写
- Failover,leader选举
- 可使用场景、项目中已使用场景
- 写数据提交策略
- 客户端代码原理
二、Kafka
0、概念broker producer consumer partition,topic,分布式,高可用
- zookeeper在kafka中的角色
- producer commit策略,failover,一致性
- kafka优点、缺点
- 丢失数据,重复消费(幂等性)场景
- 顺序性,单线程消费单个partition不足,如何扩展多线程保证且顺序
- Kafka延时怎么解决;积压大量数据,如何快速消费回复服务
7、其他mq的了解
三、分库分表
1、公司分表场景描述,从数据量,分表策略,扩展表,插入数据,消费数据。
2、为什么分表,中间件,水平和垂直含义
3、单表—》分库分表,数据迁移
4、分表id定位到库表方式,对后续扩容缩容的影响以及针对该问题的考量
5、分表后的扩容/缩容,数据迁移
6、分布式id生成策略
7、读写分离,原理,同步从库failover、延时问题、如何解决
8、分布式、高可用方面理解分库分表
四、redis
0、为什么要用缓存,持久化,丢失,failover
1、数据类型,及各种场景
1、集群,哨兵,cluster
2、分布式、高可用、扩容缩容
3、击穿 穿透 雪崩及其对应策略
4、同步竞争写同一key
5、分布式锁有确定分析、对比zookeeper
6、缓存双写问题,各种情况分析
7、redis分流(zset策略理解)
8、过期策略(最终一致性)
9、快的原理(高性能)
五、rpc、netty
1、手写rpc
2、rpc对比rest
3、netty
六、es
七、其他
1、分布式锁
2、分布式事务
3、分布式session
4、分布式id
5、分布式消息跟踪
6、分布式缓存Hash环