http://www.sohu.com/a/1442257...
看了kafka原理的很多篇文章,但对于kafka仍然存在一些疑问。
如果A实例和B实例都是同一个group,A连followerA,B连followerB,它们各自拉消息时,不可能拉到同样的数据?另一个问题是,follower从leader拉数据时,是不是拉到的消息都不一样,还是一样的?由于kafka有备份的机制,很可能会有一样的,那么是不是说仍然可以被实例A和B消费到同样的消息?
另外,拉数据时,follower不太可能通过分布式锁的方式确保消息只有一个同一group的实例被消费,因为这样太慢。
http://blog.csdn.net/lizhitao...
2.Partition Replica同步机制
1.Partition的多个replica中一个为Leader,其余为follower
2.Producer只与Leader交互,把数据写入到Leader中
3.Followers从Leader中拉取数据进行数据同步
4.Consumer只从Leader拉取数据
上面这篇文章提到kafka其实所有实例都只会跟leader打交道,只有leader挂了的时候才切换到最新的leader,那么,其实follower平时并不处理push和pull请求,只是备份?只有成为新的leader时才处理push pull请求?