分区计数覆盖

时间:2018-06-05 19:55:33

标签: apache-kafka spring-cloud spring-cloud-dataflow

从这里https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/blob/master/spring-cloud-stream-binder-kafka/src/main/java/org/springframework/cloud/stream/binder/kafka/KafkaMessageChannelBinder.java看起来似乎是不可能的,但无论如何我都会错过它。

在Spring Cloud Data Flow中,尝试创建流,但需要为主题设置自定义分区。

似乎分区计数是根据应用的实例数计算的。有没有办法覆盖主题上使用的分区数?,它们必须在队列的两边设置(消费者,生产者),但这不是问题。

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以通过设置formattedAddress: Array(5) 0 : "Chester Rd" 1 : "London" 2 : "Greater London" 3 : "NW1 4NR" 4 : "United Kingdom" 来覆盖默认行为。

请注意reference guide中针对此属性描述的先决条件。

此外,您会发现本指南中的以下注意事项通常很有用。

“Kafka绑定器使用生成器的partitionCount设置作为提示来创建具有给定分区计数的主题(与minPartitionCount一起使用,两者中的最大值是正在使用的值)。当为应用程序配置minPartitionCount和为应用程序配置partitionCount时,使用较大的值。如果主题已存在且分区计数较小且autoAddPartitions被禁用(默认值),则绑定程序无法启动。如果主题已存在如果启用了较小的分区计数和autoAddPartitions,则会添加新分区。如果主题已存在且分区数大于(minPartitionCount或partitionCount)的分区数,则使用现有分区计数。“

对于SCDF,您可以从Shell或UI覆盖App的此属性。如果您希望将此全局应用于所有流应用,也可以这样做 - 请参阅here