【总结】kafka基本认识
有两篇很不错的文章
http://orchome.com/295
1、http://www.cnblogs.com/likehua/p/3999538.html
2、http://www.cnblogs.com/smartloli/p/5829395.html
3、kafka的rebalance:(很重要)
增减consumer,broker,partition会导致rebalance
http://www.infoq.com/cn/articles/kafka-analysis-part-4/
4、kafka常用运维命令:
http://blog.csdn.net/huanggang028/article/details/49617605
5、high-level和low-level的consumer的注意事项:
http://blog.csdn.net/hadas_wang/article/details/50467062
总结:
1、多个consumer group都可以订阅同一个topic
其各自的offset,各自维护,即在zk上,每个group都有自己的offset节点
2、consumer的offset是针对topic的partition的
即,每一个group下的topic下的partition都有一个offset
3、某个partition只能被一个group中的特定的consumer消费,不能同时被两个consumer消费(但可以是不同的group的consumer)
即kafka的消息分配是以partition为单位,不是以message为单位
eg,假设现在某个topic有3个partition,一个group订阅了这个topic,这个group有4个consumer
这里的情况就是,每个partition只能被一个consumer消费,则会有3个consumer消费3个partition,一对一的关系,剩下一个consumer无法消费,所以kafka才会有下面第5条的限制
如果只有2个consumer,则会有一个consumer固定消费2个partition,具体消费的时候,也是有算法,默认应该是轮训或者hash方式
4、所有的broker都共享topic信息
即每个broker都能看到所有的topic, producer可以通过访问broker访问到所有的topic
5、一个topic有N个partition,一个consumer group中有N+1个consumer
则,会有一个consumer分配不到任何消息

浙公网安备 33010602011771号