+-
如何将spring.cloud.stream.kafka.bindings配置属性应用于所有使用者

我可以使用application.properties中的以下属性为单个通道应用partition.assignment.strategy:

spring.cloud.stream.kafka.bindings.input.consumer.configuration.partition.assignment.strategy

这是根据https://docs.spring.io/spring-cloud-stream/docs/current/reference/htmlsingle/#_kafka_consumer_properties

我想要实现的是将partition.assignment.strategy应用于具有单个属性的所有通道,并避免为所有通道编写相同的内容。

尝试设置spring.cloud.stream.kafka.binder.configuration但它没有帮助。

也许有人知道如何实现这一目标?

附加信息:我正在使用Spring Cloud 1.3.2.RELEASE。

提前致谢!

1
投票

我只是测试了它,它适用于我...

spring.cloud.stream.kafka.binder.configuration.partition.assignment.strategy=\
    org.apache.kafka.clients.consumer.RoundRobinAssignor

@SpringBootApplication
@EnableBinding(Sink.class)
public class So49053074Application {

    public static void main(String[] args) {
        SpringApplication.run(So49053074Application.class, args);
    }

    @StreamListener(Sink.INPUT)
    public void in(byte[] in) {

    }

}

2018-03-01 11:01:28.301  INFO 46708 --- [           main] o.a.k.clients.consumer.ConsumerConfig    : ConsumerConfig values: 
    ...
    metrics.sample.window.ms = 30000
    partition.assignment.strategy = [org.apache.kafka.clients.consumer.RoundRobinAssignor]
    receive.buffer.bytes = 65536
    ...