Java Spring集成的工作示例&x2B;amazonsqs队列
我正在寻找使用Spring Integration+Amazon SQS服务接收消息并将消息发送到队列的Spring应用程序的工作示例。这是一个如何使用XML配置出站通道适配器的示例:Java Spring集成的工作示例&x2B;amazonsqs队列,java,amazon-web-services,spring-integration,amazon-sqs,spring-integration-aws,Java,Amazon Web Services,Spring Integration,Amazon Sqs,Spring Integration Aws,我正在寻找使用Spring Integration+Amazon SQS服务接收消息并将消息发送到队列的Spring应用程序的工作示例。这是一个如何使用XML配置出站通道适配器的示例: <int-aws:sqs-outbound-channel-adapter sqs="sqs" auto-startup="false" channel=
<int-aws:sqs-outbound-channel-adapter sqs="sqs"
auto-startup="false"
channel="errorChannel"
phase="100"
id="sqsOutboundChannelAdapter"
queue="foo"
delay-expression="'200'"
message-deduplication-id="foo"
message-group-id-expression="'bar'"
send-timeout="202"
sync="false"
error-message-strategy="errorMessageStrategy"
failure-channel="failureChannel"
success-channel="successChannel"
message-converter="messageConverter"
async-handler="asyncHandler"
resource-id-resolver="resourceIdResolver"/>
下面是他们的Java变体:
@Bean
@ServiceActivator(inputChannel = "sqsSendChannelWithAutoCreate")
public MessageHandler sqsMessageHandlerWithAutoQueueCreate() {
DynamicQueueUrlDestinationResolver destinationResolver = new DynamicQueueUrlDestinationResolver(amazonSqs(), null);
destinationResolver.setAutoCreate(true);
return new SqsMessageHandler(amazonSqs(), destinationResolver);
}
@Bean
public MessageProducer sqsMessageDrivenChannelAdapter() {
SqsMessageDrivenChannelAdapter adapter = new SqsMessageDrivenChannelAdapter(amazonSqs(), "testQueue");
adapter.setOutputChannel(inputChannel());
return adapter;
}
您可以在项目的测试中找到更多示例:他们的github页面上的自述文件是一个非常好的起点()。你需要帮助的地方有什么特别缺少的吗?你说的“双向信息交换”是什么意思?请求/答复?入站和出站网关?然后它就不存在了。没有这样的实现。我想看看如何配置Spring集成以使用sqs队列发送和接收消息。我在使用spring集成aws github wiki中的代码片段时遇到问题。我不需要定义默认轮询器吗?如果我不添加这个bean,我可能会出现一个错误“没有为基于注释的端点定义轮询器,…”PollerMetadata和新PeriodicTrigger(200)对此队列的配置是否良好?
@Bean
@ServiceActivator(inputChannel = "sqsSendChannelWithAutoCreate")
public MessageHandler sqsMessageHandlerWithAutoQueueCreate() {
DynamicQueueUrlDestinationResolver destinationResolver = new DynamicQueueUrlDestinationResolver(amazonSqs(), null);
destinationResolver.setAutoCreate(true);
return new SqsMessageHandler(amazonSqs(), destinationResolver);
}
@Bean
public MessageProducer sqsMessageDrivenChannelAdapter() {
SqsMessageDrivenChannelAdapter adapter = new SqsMessageDrivenChannelAdapter(amazonSqs(), "testQueue");
adapter.setOutputChannel(inputChannel());
return adapter;
}