spring-integration - 使用 java 配置的 RabbitMQ 出站网关
问题描述
RabbitMQ Outbound Gateway 将消息发布到rabbitmq 集群的任何示例参考,我正在寻找带有Spring Boot 的Java 配置
解决方案
请参阅参考手册。那里有 xml、Java 和 Java DSL 示例。
@Bean
@ServiceActivator(inputChannel = "amqpOutboundChannel")
public AmqpOutboundEndpoint amqpOutbound(AmqpTemplate amqpTemplate) {
AmqpOutboundEndpoint outbound = new AmqpOutboundEndpoint(amqpTemplate);
outbound.setExpectReply(true);
outbound.setRoutingKey("foo"); // default exchange - route to queue 'foo'
return outbound;
}
或者
@Bean
public IntegrationFlow amqpOutbound(AmqpTemplate amqpTemplate) {
return IntegrationFlows.from(amqpOutboundChannel())
.handle(Amqp.outboundGateway(amqpTemplate)
.routingKey("foo")) // default exchange - route to queue 'foo'
.get();
}
网关用于请求/回复处理,而不仅仅是“发布”;如果您只是发送,则需要一个通道适配器。
@Bean
@ServiceActivator(inputChannel = "amqpOutboundChannel")
public AmqpOutboundEndpoint amqpOutbound(AmqpTemplate amqpTemplate) {
AmqpOutboundEndpoint outbound = new AmqpOutboundEndpoint(amqpTemplate);
outbound.setRoutingKey("foo"); // default exchange - route to queue 'foo'
return outbound;
}
或者
@Bean
public IntegrationFlow amqpOutbound(AmqpTemplate amqpTemplate) {
return IntegrationFlows.from(amqpOutboundChannel())
.handle(Amqp.outboundAdapter(amqpTemplate)
.routingKey("foo")) // default exchange - route to queue 'foo'
.get();
}
推荐阅读
- docker - 编译后的 Thrift bin 文件很大
- typescript - Angular 2 的 Kendo UI:具有多个数据集的 Excel 导出
- node.js - 如何使用 Node.js 在共享主机上运行简单的“Hello World”应用程序?
- java - Liferay 6.2 CE 管理员无法访问停靠栏或控制面板
- powershell - Powershell 日期时间过滤器未使用正确的 ShortDate 模式
- php - Todolist 与 mysql php
- django - Django Viewflow - 如何为多个任务应用相同的转换
- javascript - isEmpty() 在使用 JavaScript 的量角器中不起作用
- ethereum - 以太坊/Solidity:我们是否需要在合约中实现自己的“余额”变量?
- reactjs - React 找不到模块