0

我正在尝试使用rabbitMQ实现spring批量远程分块。我关注这个链接

什么是等效的 java 配置

<int:channel id="requests"/>
<int:channel id="replies"/>

<int-jms:message-driven-channel-adapter id="jmsIn"
    destination-name="requests"
    channel="requests"/>

<int-jms:outbound-channel-adapter id="outgoingReplies"
    destination-name="replies"
    channel="replies">
</int-jms:outbound-channel-adapter>
4

1 回答 1

0

入站:

@Bean(AMQP_INPUT_CHANNEL)
public MessageChannel amqpInputChannel() {
    return new DirectChannel();
}

@Bean
public AmqpInboundChannelAdapter inbound(SimpleMessageListenerContainer listenerContainer,  
                                         @Qualifier(AMQP_INPUT_CHANNEL) MessageChannel channel,
                                         Jackson2JsonMessageConverter messageConverter) {
    AmqpInboundChannelAdapter adapter = new AmqpInboundChannelAdapter(listenerContainer);   
    adapter.setMessageConverter(messageConverter);      
    adapter.setOutputChannel(channel);
    return adapter;
}

@Bean
public SimpleMessageListenerContainer container(ConnectionFactory connectionFactory) {
    SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory);   
    container.setConcurrentConsumers(5);        
    container.setQueueNames("Queue_Name");          
    return container;
}

出境:

@Bean
public MessageChannel amqpOutboundChannel() {
    return new DirectChannel();
}

@Bean
@ServiceActivator(inputChannel = "amqpOutboundChannel")
public AmqpOutboundEndpoint amqpOutbound(AmqpTemplate amqpTemplate) {
    AmqpOutboundEndpoint outbound = new AmqpOutboundEndpoint(amqpTemplate);
    outbound.setRoutingKey("ERROR-QUEUE");
    return outbound;
}

@MessagingGateway(defaultRequestChannel = "amqpOutboundChannel")
public interface BatchServiceMessagingGateway {
    void sendMessage(String data);
}
于 2017-11-15T12:47:43.613 回答