RabbitMQ Stream插件的初始生产者支持
现已提供对RabbitMQ流插件的基本支持。
要启用此功能,您必须添加春兔溪jar 映射到类路径——它必须是与春季-AMQP和春兔.
上述生产者属性在你设置制作类型属性到STREAM_SYNC或STREAM_ASYNC. |
配置绑定器使用流制作人类型, Spring Boot 将配置环境 @Bean从应用属性中获得。
你可以选择添加自定义工具来自定义消息处理程序。
@Bean
ProducerMessageHandlerCustomizer<MessageHandler> handlerCustomizer() {
return (hand, dest) -> {
RabbitStreamMessageHandler handler = (RabbitStreamMessageHandler) hand;
handler.setConfirmTimeout(5000);
((RabbitStreamTemplate) handler.getStreamOperations()).setProducerCustomizer(
(name, builder) -> {
...
});
};
}
有关环境配置和生产者构建器的信息,请参阅RabbitMQ Stream Java客户端文档。
RabbitMQ 超级流的制作人支持
有关超级直播的信息,请参见超级直播。
使用超级流允许在每个超级流分区上自动进行扩展和缩放,每个分区上都有一个活跃的消费者。 使用 Spring Cloud Stream,你可以通过 AMQP 或通过 stream 客户端发布到超级流。
| 超级流必定已经存在;制作者绑定不支持创建超级流。 |
通过AMQP发布超级流:
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.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频道成功发送的消息副本会发送到该信道。