我正在尝试使用rabbitMQ实现spring批量远程分块。我遵循这个link
这个
的等效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>
答案 0 :(得分:0)
对于INBOUND:
@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;
}
对于OUTBOUND:
@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);
}