Kafka历史&客户端功能介绍
Producer新旧对比
新版本:
- 发送过程被分为两个线程,一条消息发送后经用户主线程进入内存缓冲区,
Sender I/O
线程将缓冲区中的数据分批发给Kafka broker - 完全异步发送消息,通过
Future
或Callback
来通知发送者 - 分批机制,提升整体吞吐量
- 轮询方式对无
key
消息分区,更加均匀 - 底层使用Selector
旧版本:
- 无分批发送,吞吐量差
- 消息发送完全同步,吞吐量差
- 无key消息在一段时间内发给固定分区,容易造成数据倾斜
Consumer新旧对比
新版本:
- 消息offset由Kafka内部topic处理,不受限于Zookeeper性能瓶颈
- 消费者组由集中式协调者管理,不再由Zookeeper管理
- 底层使用Selector,单线程设计,简化实现
旧版本:
- offset和消费者组由Zookeeper处理
- 提供
low-level consumer
和high-level consumer
,前者提供的功能更少,但给了你更多定制化的选择,后者功面向用户提供更高级的功能(比如消费者组),但你没法高度定制
磁盘规划
未完...