[英]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。
希望這能解釋!
簡單來說,分區用於可擴展性,復制用於可用性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.