SpringCloud 配置用于分区的输入绑定
通过设置应用程序本身的partitioned
属性以及应用程序本身的instanceIndex
和instanceCount
属性,将输入绑定(通道名称为input
)配置为接收分区数据。下面的例子:
spring.cloud.stream.bindings.input.consumer.partitioned=true spring.cloud.stream.instanceIndex=3 spring.cloud.stream.instanceCount=5
instanceCount
值表示应在其之间分区数据的应用程序实例的总数。instanceIndex
在多个实例中必须是唯一的值,其值应介于0
和instanceCount - 1
之间。实例索引可帮助每个应用程序实例识别从中接收数据的唯一分区。活页夹要求使用不支持本地分区的技术。例如,对于RabbitMQ,每个分区都有一个队列,该队列名称包含实例索引。对于Kafka,如果autoRebalanceEnabled
为true
(默认值),则Kafka负责在实例之间分配分区,并且不需要这些属性。如果autoRebalanceEnabled
设置为false,则绑定器将使用instanceCount
和instanceIndex
来确定实例所预订的分区(您必须拥有与实例数量一样多的分区) 。活页夹分配分区而不是Kafka。如果您希望特定分区的消息始终发送到同一实例,这可能很有用。当活页夹配置需要它们时,重要的是正确设置两个值,以确保使用所有数据,并且应用程序实例接收互斥的数据集。
尽管在单独情况下使用多个实例进行分区数据处理可能会很复杂,但Spring Cloud Dataflow可以通过正确填充输入和输出值并让您依赖运行时来显着简化流程基础架构,以提供有关实例索引和实例计数的信息。
更多建议: