Xim*_*mon 6 spring rabbitmq amazon-sqs spring-cloud
也许有人对我的以下问题有所了解:
我目前在一个项目中,我想将 AWS SQS 与 Spring Cloud 集成一起使用。对于接收器部分,我想提供一个 API,用户可以在其中注册一个队列上的“消息处理程序”,这是一个接口,将包含用户的业务逻辑,例如
MyAwsSqsReceiver receiver = new MyAwsSqsReceiver();
receiver.register("a-queue-name", new MessageHandler(){
@Override
public void handle(String message){
//... business logic for the received message
}
});
Run Code Online (Sandbox Code Playgroud)
我找到了示例,例如 https://codemason.me/2016/03/12/amazon-aws-sqs-with-spring-cloud/ 并阅读文档 http://cloud.spring.io/spring-cloud-aws /spring-cloud-aws.html#_sqs_support
但是我在那里发现唯一可以“连接”处理传入消息的功能的是方法上的注释,例如@SqsListener或@MessageMapping。
不过,这些注释固定为某个队列名称。所以现在我不知所措,如何将我提供的“MessageHandler”(来自我的 API)动态“连接”到指定队列名称的传入消息。
在 Config 示例中有一个SimpleMessageListenerContainer,它获取一个QueueMessageHandler集合,但是这个 QueueMessageHandler 似乎不是设置我的处理程序或覆盖其方法并提供我自己的QueueMessageHandler.
我已经用 Spring Amqp 集成和 RabbitMq 做了类似的事情,并认为,它也与 AWS SQS 类似。
有没有人有想法,如何实现这一目标?
谢谢+再见,Ximon
编辑:
我发现,Spring JMS 实际上可以做到这一点,例如www.javacodegeeks.com/2016/02/aws-sqs-spring-jms-integration.html。有谁知道,使用 JMS 协议有什么后果,好还是坏?
has*_*vec -1
当我们做 Spring 和 SQS 时,我们使用 spring-cloud-starter-aws-messaging。
然后创建一个Listener类
@Component
public class MyListener {
@SQSListener(value="myqueue")
public void listen(MyMessageType message) {
//process the message
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1535 次 |
| 最近记录: |