Kafka In Action 1

  那么我们看下第一种情况,consumer接受到了消息,然后更新offset, 在没有处理消息前就crash掉了,接着另外一个consumer来接受的时候,发现offset已经被更新,然后就去取下一条消息,这时候上一条消息就被丢弃了。第二种情况,consumer同样接受到了消息,但是先去处理了消息,但是在没有保存offset之前就crash掉了,接着另外一个consumer来接受的时候,发现offset还是以前那个,这时候就会再去拉取一次,这样就造成了重复投递了。第三种情况,其实保证处理消息和更新offset在同一个事务中,这时候就可以保证只会投递一次。

  Summary

 

  简单介绍了Kafka的架构,以前我最搞不懂的是,如何做到replication, 只要明白kafka的replication是针对partition的,而且是ISR进行leader, follower的同步,并且整个kafka的并发能力取决于partition的个数.