我创建了一个包含3个分区的主题
Topic:fixtures PartitionCount:3 ReplicationFactor:1 Configs:
Topic: fixtures Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: fixtures Partition: 1 Leader: 0 Replicas: 0 Isr: 0
Topic: fixtures Partition: 2 Leader: 0 Replicas: 0 Isr: 0
我使用Java制作人同步写入主题
producer.send(new ProducerRecord<>(KafkaProperties.TOPIC_FIXTURES, key, value)).get();
我有一个Java的用户订阅并阅读它
Consumer<String, String> kafkaConsumer = new KafkaConsumer<>(configs);
kafkaConsumer.subscribe(Collections.singletonList(KafkaProperties.TOPIC_FIXTURES));
我的键总是一组固定的3个不同的字符串(k1、k2、k3)。但是我的消息总是去分区1或分区2——k1和k2去分区1,k3去分区2。
为什么分区0未使用?
对于键控消息,默认分区程序根据键的哈希值计算分区。
对于许多密钥,使用密钥哈希是在分区之间均匀分布消息的有效方法。
但是如果您只有很少几个不同的键(或者如果键的数量接近分区的数量),则可能不会使用所有分区。
如果是这种情况,那么您可以使用partitioner.class
配置将自己的分区程序提供给生产者,例如进行循环。
Kafka主题分区偏移位置始终从0或随机值开始,如何确保使用者记录是分区中的第一条记录?有没有办法找出答案?如果有的话,请让我知道。谢谢。
简单问题: 假设我有一个具有3个分区的主题:Topic:StateEvents P1、P2和P3。 让我们假设生产者生成20条消息: 1, 2, 3, ..........20 我的问题是: 当制作人生成这些消息时: 1)每个消息将只在且仅在1个分区?也就是说,1在P1,2在P2,3在P3,然后4在P1,5在P2,6在P3,以此类推? 2)如果#1为真,当消费者订阅时,它将订阅所有分区,以便获得所
通过Kafka文档和各种其他资源,我了解到Kafka中的消息被组织成主题。此外,主题可以分解为多个分区,每个分区可以托管在不同的服务器上。这提供了冗余和可伸缩性。 我不确定这里的“破碎”这个词是什么意思。这是否意味着,如果添加到主题的消息是,例如“1 2 3 4 5 6 7”,那么在将其分解为分区后,我们将有一个分区仅包含整个主题的子部分。就像一个分区有“1 2 3”,而另一个分区有“4 5 6”
null camel-kafka中是否有任何配置,我们可以使用它来增加kafka主题分区计数?
我开始学习Kafka用于企业解决方案。 在我阅读的过程中,我脑海中浮现出一些问题: > 当一个生产者正在生成一个消息--它会指定它想要将消息发送到的主题,是这样吗?它关心分区吗? 当订阅服务器运行时-它是否指定其组id,以便它可以是同一主题的使用者集群的一部分,或者是该组使用者感兴趣的几个主题的一部分? 每个消费者组在代理上有一个对应的分区还是每个消费者都有一个? 分区是由代理创建的,因此不是消费
我找不到任何可以添加到Kafka的与配置相关的更改