kafka理解

kafka理解_第1张图片

  1. 一个topic分为多个partition(类似于solrcloud的一个collection分为多个shard)

  2. 每个partition有一个leader,和N个replication,在一个partition中,leader负责读写,replication跟leader做数据同步,当leader挂了,从N个replication中选举一个新的leader(类似于solrcloud的shard leader-replication)

  3. 一条消息,只能发送到topic中的一个partition中,例如Msg1消息,只能到3个partition中的一个,不会出现多个partition中有Msg1消息,在单个partition中,消息有序,在磁盘上顺序向后追加(顺序写)消息,消费者顺序读取消息

  4. 一个consumer加入到group,可以订阅多个topic消息,一个group中的多个consumer均衡的消费topic中的partition消息。

  5. 一旦一个consumer与某个partition建立连接,不会轻易改变,除非group中的consumer发生了变化(例如出现了consumer的增减),导致group中的consumer重新均衡分配消费partition。一个group只有一个consumer消费某一个partition

  6. 一个topic可以被多个group订阅,保证某一条消息(例如Msg1)会被每个group都会消费到

你可能感兴趣的:(kafka理解)