注意:
- 一个Leader只能被同一个Consumer group中的一个consumer所消费,不能被同一个Consumer group中的多个 consumer所消费。
- 一个Leader可以被多个Consumer group所消费。
- 消息队列常用于生产速度大于消费速度。
- 当consumer数量等于一个topic的partition数量时,性能最好。因为当consumer数量大于一个topic的parition数量时, 部分consumer可能需要处理多个leader;当consumer数量小于一个topic的parition数量时,部分consumer没有leader可处理,处于空转状态。
- 0.9 版本之前offset存储在ZK,0.9版本之后offset存储在kafka本地。因为ZK的本身作用是提供各大框架之间润滑剂的作用,而consumer高并发的从broker拉取消息,会使得offser的修改也是非常频繁的,如果offset存储在ZK,对ZK也有很大影响,因此0.9版本及之后offset都存储在本地。