【问题标题】:what is difference between partition and replica of a topic in kafka clusterkafka集群中主题的分区和副本有什么区别
【发布时间】:2015-01-24 21:15:25
【问题描述】:

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

【问题讨论】:

    标签: hadoop apache-kafka


    【解决方案1】:

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

    参考文档:http://kafka.apache.org/documentation.html#producerapi 还有基础培训:http://www.slideshare.net/miguno/apache-kafka-08-basic-training-verisign

    【讨论】:

      【解决方案2】:

      主题跨多个节点进行分区,因此主题可以超出节点的限制。复制分区以实现容错。复制和领导接管是 Kafka 与其他经纪人/Flume 之间的最大区别之一。来自Apache Kafka site:

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

      【讨论】:

        【解决方案3】:

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

        希望这能解释清楚!

        Further Reading

        【讨论】:

          【解决方案4】:
          • 分区:每个主题都可以拆分为多个分区,以实现负载均衡(可以同时写入不同的分区)和可扩展性(主题可以扩展而不受实例限制);在同一分区内,记录是有序的;

          • replica:主要是为了容错持久性;

          Quotes:

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

          有一个非常直观的教程来解释Kafka中的一些基本概念:https://www.tutorialspoint.com/apache_kafka/apache_kafka_fundamentals.htm

          此外,还有一个工作流程可以帮助您度过难关:https://www.tutorialspoint.com/apache_kafka/apache_kafka_workflow.htm

          【讨论】:

            【解决方案5】:

            分区

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

            当您要发布项目时,Kafka 会获取其哈希值,并将其附加到适当的存储桶中。

            复制因子

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

            【讨论】:

              【解决方案6】:

              简单来说,分区用于可扩展性,复制用于可用性。

              【讨论】:

                猜你喜欢
                • 2020-11-19
                • 1970-01-01
                • 2018-03-31
                • 1970-01-01
                • 1970-01-01
                • 2018-08-08
                • 2018-12-07
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多