使用Java配置的RabbitMQ出站网关

时间:2018-08-27 20:42:15

标签: spring-integration spring-integration-amqp

RabbitMQ出站网关将消息发布到Rabbitmq集群的任何示例参考,我正在使用Spring Boot寻找Java配置

1 个答案:

答案 0 :(得分:1)

请参见the reference manual。那里有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();
}