【总结】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分配不到任何消息

 

posted @ 2017-05-27 19:07  wind_land  阅读(156)  评论(0)    收藏  举报