RabbitMQ Stream插件的初始生产者支持

现已提供对RabbitMQ流插件的基本支持。 要启用此功能,您必须添加春兔溪jar 映射到类路径——它必须是与春季-AMQP春兔.spring-doc.cadn.net.cn

上述生产者属性在你设置制作类型属性到STREAM_SYNCSTREAM_ASYNC.

配置绑定器使用流制作人类型, Spring Boot 将配置环境 @Bean从应用属性中获得。 你可以选择添加自定义工具来自定义消息处理程序。spring-doc.cadn.net.cn

@Bean
ProducerMessageHandlerCustomizer<MessageHandler> handlerCustomizer() {
    return (hand, dest) -> {
        RabbitStreamMessageHandler handler = (RabbitStreamMessageHandler) hand;
        handler.setConfirmTimeout(5000);
        ((RabbitStreamTemplate) handler.getStreamOperations()).setProducerCustomizer(
                (name, builder) -> {
                    ...
                });
    };
}

有关环境配置和生产者构建器的信息,请参阅RabbitMQ Stream Java客户端文档spring-doc.cadn.net.cn

RabbitMQ 超级流的制作人支持

有关超级直播的信息,请参见超级直播spring-doc.cadn.net.cn

使用超级流允许在每个超级流分区上自动进行扩展和缩放,每个分区上都有一个活跃的消费者。 使用 Spring Cloud Stream,你可以通过 AMQP 或通过 stream 客户端发布到超级流。spring-doc.cadn.net.cn

超级流必定已经存在;制作者绑定不支持创建超级流。

通过AMQP发布超级流:spring-doc.cadn.net.cn

spring.cloud.stream.bindings.output.destination=super
spring.cloud.stream.bindings.output.producer.partition-count=3
spring.cloud.stream.bindings.output.producer.partition-key-expression=headers['cust-no']
spring.cloud.stream.rabbit.bindings.output.producer.declare-exchange=false

使用流客户端发布到超级流:spring-doc.cadn.net.cn

spring.cloud.stream.bindings.output.destination=super
spring.cloud.stream.bindings.output.producer.partition-count=3
spring.cloud.stream.bindings.output.producer.partition-key-expression=headers['cust-no']
spring.cloud.stream.rabbit.bindings.output.producer.producer-type=stream-async
spring.cloud.stream.rabbit.bindings.output.producer.super-stream=true
spring.cloud.stream.rabbit.bindings.output.producer.declare-exchange=false

使用流客户端时,如果你设置了确认Ack频道成功发送的消息副本会发送到该信道。spring-doc.cadn.net.cn