kafka集群中主题的分区和副本有什么区别

au9on6nz  于 2021-05-30  发布在  Hadoop
关注(0)|答案(5)|浏览(390)

kafka集群中主题的分区和副本有什么区别。我的意思是两者都将消息的副本存储在一个主题中。那么真正的区别是什么呢?

sd2nnvve

sd2nnvve1#

分区:每个主题可以被划分成多个分区进行负载平衡(您可以同时写入不同的分区)和可伸缩性(主题可以扩展而不受示例限制);在同一分区内,记录是有序的;
副本:主要用于容错耐久性;
引用:
日志的分区分布在kafka集群中的服务器上,每个服务器处理数据和对分区共享的请求。每个分区跨可配置数量的服务器进行复制以实现容错。
有一个非常直观的教程来解释Kafka的一些基本概念:https://www.tutorialspoint.com/apache_kafka/apache_kafka_fundamentals.htm
此外,还有一个工作流可以帮助您完成令人困惑的jumgle:https://www.tutorialspoint.com/apache_kafka/apache_kafka_workflow.htm

0qx6xfy6

0qx6xfy62#

Kafka的主题被划分为若干个分区。写入特定主题的任何记录都会转到特定分区。每个记录都由唯一的偏移量分配和标识。复制是在分区级别实现的。主题分区的冗余单元称为副本。决定消息分区的逻辑是可配置的。分区通过在分布在多个代理上的不同分区中进行拆分来帮助并行地读/写数据。每个复制副本都有一个服务器作为领导者,其他服务器作为追随者。leader处理读/写操作,followers复制数据。如果领袖失败,任何一个追随者都会被选为领袖。
希望这能解释!
进一步阅读

cwtwac6a

cwtwac6a3#

将消息添加到主题时,调用producer api的send(keyedmessage消息)方法。这意味着您的消息包含键和值。创建主题时,需要指定希望其具有的分区数。当您为此主题调用“send”方法时,数据将根据密钥的哈希值(默认情况下)只发送到一个特定分区。每个分区可能都有一个副本,这意味着两个分区及其副本存储相同的数据。限制是,生产者和使用者都只使用主副本,其副本仅用于冗余。
请参阅文档:http://kafka.apache.org/documentation.html#producerapi 基本训练:http://www.slideshare.net/miguno/apache-kafka-08-basic-training-verisign

noj0wjuj

noj0wjuj4#

分区
一个主题由一堆桶组成。每个这样的bucket称为分区。
当您想要发布一个项目时,kafka会获取它的散列,并将其附加到相应的bucket中。

复制因子
这是要通过网络复制的主题数据的副本数。

klr1opcd

klr1opcd5#

主题被划分到多个节点上,因此主题可以超出节点的限制。复制分区以实现容错。复制和领导者接管是Kafka和其他经纪人/flume最大的区别之一。从apache kafka网站:
每个分区都有一个充当“领导者”的服务器和零个或多个充当“追随者”的服务器。leader处理分区的所有读写请求,而followers则被动地复制leader。如果领导者失败,其中一个追随者将自动成为新的领导者。每台服务器都充当其部分分区的引导者和其他分区的跟随者,因此集群内的负载平衡良好。

相关问题