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

Gau*_*are 15 hadoop apache-kafka

kafka集群中主题的分区和副本之间有什么区别.我的意思是将消息的副本存储在主题中.那真正的差异是什么?

0x0*_*FFF 11

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

请参阅文档:http://kafka.apache.org/documentation.html#producerapi 以及基本培训:http://www.slideshare.net/miguno/apache-kafka-08-basic-training-verisign


tec*_*oma 9

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

每个分区都有一个服务器充当"领导者",零个或多个服务器充当"追随者".领导者处理分区的所有读取和写入请求,而关注者被动地复制领导者.如果领导者失败,其中一个粉丝将自动成为新的领导者.每个服务器都充当其某些分区的领导者和其他服务器的追随者,因此负载在群集中得到很好的平衡.


Hea*_*ren 8

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

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

引号

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

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

此外,还有一个工作流程可以帮助您解决混乱的问题:https://www.tutorialspoint.com/apache_kafka/apache_kafka_workflow.htm