簡體   English   中英

kafka集群中主題的分區和副本之間有什么區別

[英]what is difference between partition and replica of a topic in kafka cluster

kafka 集群中主題的分區和副本有什么區別。 我的意思是兩者都將消息的副本存儲在一個主題中。 那么真正的區別是什么呢?

當您將消息添加到主題時,您將調用生產者 API 的 send(KeyedMessage message) 方法。 這意味着您的消息包含鍵和值。 創建主題時,您可以指定希望它擁有的分區數。 當您為此主題調用“發送”方法時,數據將僅根據您的鍵的哈希值發送到一個特定的分區(默認情況下)。 每個分區可能有一個副本,這意味着兩個分區及其副本存儲相同的數據。 限制是您的生產者和消費者都只使用主副本,其副本僅用於冗余。

請參閱文檔: http : //kafka.apache.org/documentation.html#producerapi和基本培訓: http : //www.slideshare.net/miguno/apache-kafka-08-basic-training-verisign

主題跨多個節點進行分區,因此主題可以增長到超出節點的限制。 分區被復制以實現容錯。 復制和領導者接管是 Kafka 和其他 brokers/Flume 之間最大的區別之一。 Apache Kafka 站點

每個分區有一個充當“領導者”的服務器和零個或多個充當“跟隨者”的服務器。 領導者處理分區的所有讀寫請求,而追隨者則被動地復制領導者。 如果領導者失敗,其中一個追隨者將自動成為新的領導者。 每個服務器充當其某些分區的領導者和其他分區的跟隨者,因此負載在集群內得到很好的平衡。

  • 分區:每個主題可以拆分為分區以實現負載平衡(您可以同時寫入不同的分區)和可擴展性(主題可以在不受實例限制的情況下擴展); 在同一分區內,記錄被排序;

  • 副本:主要用於容錯持久性;

行情

日志的分區分布在 Kafka 集群中的服務器上,每個服務器處理數據和對分區共享的請求。 每個分區都在可配置數量的服務器上復制以實現容錯。

有一個非常直觀的教程來解釋 Kafka 中的一些基本概念: https : //www.tutorialspoint.com/apache_kafka/apache_kafka_fundamentals.htm

此外,還有一個工作流程可以幫助您解決混亂的問題: https ://www.tutorialspoint.com/apache_kafka/apache_kafka_workflow.htm

Kafka 主題分為多個分區。 寫入特定主題的任何記錄都會轉到特定分區。 每條記錄都由唯一的偏移量分配和標識。 復制是在分區級別實現的。 主題分區的冗余單元稱為副本。 決定消息分區的邏輯是可配置的。 分區通過拆分分布在多個代理上的不同分區來幫助並行讀取/寫入數據。 每個副本都有一個服務器作為領導者,其他服務器作為追隨者。 領導者處理讀/寫,而追隨者復制數據。 如果leader失敗,任何一個follower都會被選舉為leader。

希望這能解釋!

進一步閱讀

分區

一個主題由一堆桶組成。 每個這樣的桶稱為一個分區。

當你想發布一個項目時,Kafka 會獲取它的哈希值,並將它附加到適當的存儲桶中。

在此處輸入圖片說明

復制因子

這是您希望通過網絡復制的主題數據的副本數。

簡單來說,分區用於可擴展性,復制用於可用性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM