1. Kafka数据积压如何处理?
1. 增加topic分区,增加消费者
2. 如果当天是重要的活动,那么可以考虑,业务降级,关闭不重要的业务,减少数据量
2. Kafka的分区为什么没有设计读写分离?
1)如果读写分离,还得考虑数据一致性。 会带来数据延迟。
2)如果有压力可以靠扩partition来解 决,所以读写分离的必要性不大
3. Kafka为什么读写效率高
写:
1. 内存池的设计
2. 批量发送数据默认200ms发送一次
3. 强势的网络架构 Reactor网络设计模式
4. 一直写的是队列,也就是内存写入,后续根据三层网络架构进行分发多线程处理
5. 顺序写磁盘
6. 零拷贝机制。减少了网络IO
读:
1. 跳表设计
2. 日志存储是稀疏索引设计,也就是双重定位都有索引。
4. kafka中生产数据的时候,如何保证写入的容错性?
设置发送数据是否需要服务端的反馈,有三个值0,1,-1
0: producer不会等待broker发送ack
1: 当leader