关于Kafka,我有以下几个问题:
>
如果我创建一个主题,并且指定的分区数多于代理数,那么单个代理将处理多个分区?
如果我创建了一个主题,并且指定的复制因子大于没有代理,那么该主题会创建还是不会创建?
一个代理可以处理不同主题的多个分区。
+-------------------+
| Topic X |
| Partition 0 |
| |
| |
| Topic X |
| Partition 1 |
+-------------------+
>> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic myTestTopic
Error while executing topic command replication factor: 3 larger than available
brokers: 1
kafka.admin.AdminOperationException: replication factor: 3 larger than available
brokers: 1
at kafka.admin.AdminUtils$.assignReplicasToBrokers(AdminUtils.scala:70)
at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:171)
at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:93)
at kafka.admin.TopicCommand$.main(TopicCommand.scala:55)
at kafka.admin.TopicCommand.main(TopicCommand.scala)
+-------------------+
| Topic 1 |
| Partition 0 |
| |
| |
| Topic 3 |
| Partition 1 |
| |
| |
| Topic 2 |
| Partition 1 |
+-------------------+
+-------------------+
| Topic 1 |
| Partition 1 |
| |
| |
| Topic 3 |
| Partition 0 |
| |
| |
| Topic 2 |
| Partition 0 |
+-------------------+
我正在NodeJs应用程序中使用kafka-node通过loadMetadataForTopics选项创建主题。我希望我的应用程序动态地了解可用分区的数量,以便它能够在这些分区上正确地分发消息。 在单个节点Kafka实例中,方法创建主题并返回元数据,如下所示: 但是,在三节点集群中,该方法会创建更多的条目: 在本例中,它创建了4个分区吗?在我看来是这样的--因为这只是最后一个案例场景(真的显式设置
我正在学习Kafka,并试图为我最近的搜索应用程序创建一个主题。被推送到Kafka主题的数据被认为是一个很高的数字。 我的kafka集群有3个代理,并且已经为其他要求创建了主题。 现在,我应该为最近的搜索主题选择多少个分区?如果我没有明确提供分区号呢?选择分区号时需要考虑哪些事项?
我有一个无效的经纪人,它并不真的存在。我错误地启动了一个id无效的服务器。 但其中一个主题以前分配给了这个代理:
当我们基于某个键在流上应用组 by 函数时,kafka 如何计算这一点,因为相同的键可能存在于不同的分区中?我看到了()函数,它基本上对数据进行了重新分区,但我不明白它是什么意思。它会将具有相同键的所有消息移动到单个分区中吗?另外,我们可以通过()方法调用的频率如何?如果有要求,我们可以在收到每条消息后调用它吗?请建议。谢谢
通过Kafka文档和各种其他资源,我了解到Kafka中的消息被组织成主题。此外,主题可以分解为多个分区,每个分区可以托管在不同的服务器上。这提供了冗余和可伸缩性。 我不确定这里的“破碎”这个词是什么意思。这是否意味着,如果添加到主题的消息是,例如“1 2 3 4 5 6 7”,那么在将其分解为分区后,我们将有一个分区仅包含整个主题的子部分。就像一个分区有“1 2 3”,而另一个分区有“4 5 6”
问题内容: 我试图编写代码来解决标准的整数分区问题(Wikipedia)。我写的代码一团糟。我需要一个优雅的解决方案来解决该问题,因为我想改善自己的编码风格。这不是一个作业问题。 问题答案: 虽然这个答案很好,但我还是建议以下skovorodkin的答案: 如果要所有排列(即(1,3)和(3,1))更改为