我用经纪人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如何分配分区或代理来并行地为这些用户服务?
复制和分区是两回事。
复制将在集群中复制相同的数据,以获得更高的可用性/持久性。分区是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拓扑构建器的