Исходящий шлюз RabbitMQ с использованием конфигурации Java - PullRequest
0 голосов
/ 27 августа 2018

любой пример ссылки на исходящий шлюз RabbitMQ для отправки сообщений в кластер rabbitmq. Я ищу конфигурацию Java с Spring Boot

1 Ответ

0 голосов
/ 27 августа 2018

См. Справочное руководство . Там есть примеры 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();
}
...