Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop kafka集群中主题的分区和副本有什么区别_Hadoop_Apache Kafka - Fatal编程技术网

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

Hadoop kafka集群中主题的分区和副本有什么区别,hadoop,apache-kafka,Hadoop,Apache Kafka,kafka集群中主题的分区和副本有什么区别。 我的意思是两者都将消息的副本存储在一个主题中。那么真正的区别是什么呢?当您将消息添加到主题中时,可以调用生产者API的send(KeyedMessage)方法。这意味着您的消息包含键和值。创建主题时,需要指定希望其具有的分区数。当您为此主题调用“send”方法时,数据将根据密钥的哈希值(默认情况下)仅发送到一个特定分区。每个分区可能都有一个副本,这意味着分区及其副本都存储相同的数据。限制是,生产者和消费者都只使用主副本,其副本仅用于冗余 请参阅文档:

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

当您将消息添加到主题中时,可以调用生产者API的send(KeyedMessage)方法。这意味着您的消息包含键和值。创建主题时,需要指定希望其具有的分区数。当您为此主题调用“send”方法时,数据将根据密钥的哈希值(默认情况下)仅发送到一个特定分区。每个分区可能都有一个副本,这意味着分区及其副本都存储相同的数据。限制是,生产者和消费者都只使用主副本,其副本仅用于冗余

请参阅文档:
还有一个基本培训:

主题在多个节点之间进行分区,以便主题可以超出节点的限制。分区被复制以实现容错。复制和领导者接管是卡夫卡与其他经纪人/Flume最大的区别之一。从:

每个分区都有一台服务器,充当“领导者”和零或零 更多充当“追随者”的服务器。领导者处理所有的读和写操作 写入分区请求,而跟随者处于被动状态 复制领导者。如果领导者失败,其中一个追随者将失败 自动成为新的领导者。每台服务器都充当服务器的领导者 它的一些分区和其他分区的一个跟随器,因此负载很好 在集群内保持平衡


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

希望这能解释

  • 分区:可以将每个主题拆分为多个分区以实现负载平衡(您可以同时写入不同的分区)和可伸缩性(主题可以在不受实例限制的情况下进行扩展);在同一分区内,记录被排序

  • 副本:主要用于容错耐久性

:

日志分区分布在Kafka集群中的服务器上,每个服务器处理数据和共享分区的请求。每个分区跨可配置数量的服务器进行复制,以实现容错

有一个非常直观的教程来解释卡夫卡的一些基本概念:


此外,还有一个工作流程可以帮助您完成混乱的jumgle:

分区

一个主题由一堆桶组成。每个这样的bucket称为分区

当您想要发布一个项目时,Kafka会获取其散列,并将其附加到相应的bucket中

复制系数


这是您希望通过网络复制的主题数据的副本数。

简单来说,分区用于可伸缩性,复制用于可用性