分区的副本机制
我們已經知道Kafka的每個topic都可以分為多個Partition,并且多個partition會均勻分布在集群的各個節點下。雖然這種方式能夠有效的對數據進行分片,但是對于每個partition來說,都是單點的,當其中一個partition不可用的時候,那么這部分消息就沒辦法消費。所以kafka為了提高partition的可靠性而提供了副本的概念(Replica),通過副本機制來實現冗余備份。
每個分區可以有多個副本,并且在副本集合中會存在一個leader的副本,所有的讀寫請求都是由leader副本來進行處理。剩余的其他副本都做為follower副本,follower副本會從leader副本同步消息日志。這個有點類似zookeeper中leader和follower的概念,但是具體的時間方式還是有比較大的差異。所以我們可以認為,副本集會存在一主多從的關系。
一般情況下,同一個分區的多個副本會被均勻分配到集群中的不同broker上,當leader副本所在的broker出現故障后,可以重新選舉新的leader副本繼續對外提供服務。通過這樣的副本機制來提高kafka集群的可用性。
?
總結
- 上一篇: 如何保存消费端的消费位置
- 下一篇: 副本的leader选举