当前位置: 首页 > 知识库问答 >
问题:

Kafka分区和Kafka复制品有什么区别?

赵河
2023-03-14

我用经纪人ID的20、21、22创建了3个Kafka经纪人设置。然后我创建了这个主题:

bin/kafka-topics.sh --zookeeper localhost:2181 \
  --create --topic zeta --partitions 4 --replication-factor 3

其结果是:

当生产者向主题zeta发送消息“Hello World”时,Kafka首先将消息写入哪个分区?

如果我有8个用户在他们自己的进程或线程中并行地运行,并订阅了zeta主题,那么Kafka如何分配分区或代理来并行地为这些用户服务?

共有1个答案

穆铭晨
2023-03-14

复制和分区是两回事。

复制将在集群中复制相同的数据,以获得更高的可用性/持久性。分区是Kafka在集群中分发非冗余数据的方法,它随着分区的数量而扩展。

当生产者向主题zeta发送消息“Hello World”时,Kafka首先将消息写入哪个分区?

您将在Broker20、21、22上找到消息。但是,每个分区都有一个领导者,负责从该分区和到该分区的所有读写操作。在屏幕截图中,还可以发现每个分区的领导者的代理id。从leader:21分区0可以看出该分区的leader位于broker21上。

3个代理中的每个代理包含所有4个分区?在上面的上下文中,这与复制因子3有什么关系?

因为您已经将复制因子设置为3,而集群中总共有3个代理,所以这三个代理都包含所有四个分区。同样,分区和副本之间也有区别。您可以有一个带有单个代理的Kafka“集群”,并且在主题中仍然有20个分区。

 类似资料:
  • 我发现maven repo中有几个Kafka。 阿帕奇的maven回购协议中有两个Kafka。https://mvnrepository.com/artifact/org.apache.kafka/kafka https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients 它们都可以从kafka服务器生成Mesg并消耗msg。 我

  • 我正在用单个主题和多个分区实现kafka producer。我通过消息中的一个特定值(消息json中的feedName属性值)选择消息到哪个分区。我正在为feedName-partitionId映射维护一个SQL表。我的问题是,leader和副本的分区Id是否相同?如果不同,如何在所有代理中唯一地标识分区?

  • 在Spring云网站(https://spring.io/projects/spring-cloud-stream),列出了要使用的活页夹选项。我们有阿帕奇Kafka和Kafka流选项。 他们之间有什么区别

  • 我正在研究Apache Kafka。我想知道哪一个更好:Kafka或ActiveMQ。这两种技术的主要区别是什么?我想在Spring MVC中实现Kafka。

  • 我目前正在学习Scala并运行99个问题(http://aperiodic.net/phil/scala/s-99/),它给P07(http://aperiodic.net/phil/scala/s-99/p07.scala)的解决方案如下所示: 但是当我将更改为或其他方式时,结果似乎没有什么不同。因此,我质疑有什么不同以及他们为什么这样做。

  • “Kafka spout”和“Kafka Consumer”都从Kafka经纪人那里检索数据,到目前为止我知道的spout是用来与Storm通信的,而Consumer是用来与其他任何东西通信的。 --但是,技术上的区别是什么? -或者,如果我使用Consumer提取数据,然后使用“Storm Spout”接收数据,和如果我只是使用“Kafka Spout”,然后将其添加到我的Storm拓扑构建器的