一個topic分爲多個partition(相似於solrcloud的一個collection分爲多個shard)同步
每一個partition有一個leader,和N個replication,在一個partition中,leader負責讀寫,replication跟leader作數據同步,當leader掛了,從N個replication中選舉一個新的leader(相似於solrcloud的shard leader-replication)it
一條消息,只能發送到topic中的一個partition中,例如Msg1消息,只能到3個partition中的一個,不會出現多個partition中有Msg1消息,在單個partition中,消息有序,在磁盤上順序向後追加(順序寫)消息,消費者順序讀取消息
io
一個consumer加入到group,能夠訂閱多個topic消息,一個group中的多個consumer均衡的消費topic中的partition消息。im
一旦一個consumer與某個partition創建鏈接,不會輕易改變,除非group中的consumer發生了變化(例如出現了consumer的增減),致使group中的consumer從新均衡分配消費partition。一個group只有一個consumer消費某一個partition數據
一個topic能夠被多個group訂閱,保證某一條消息(例如Msg1)會被每一個group都會消費到
top