使用 @SqsListener 注解为 FIFO 配置消息组 ID
Posted
技术标签:
【中文标题】使用 @SqsListener 注解为 FIFO 配置消息组 ID【英文标题】:Configure message group ID for FIFO using @SqsListener annotation 【发布时间】:2019-10-22 13:22:05 【问题描述】:我正在使用 Spring Cloud API 提供的 @SqsListener 来使用 FIFO 队列中的消息。我想根据特定的消息组 ID 使用消息。不确定在哪里配置此设置。
我尝试阅读 AWS Spring Cloud 文档并进行了一些谷歌搜索,但找不到答案或示例。
我的注释是这样的:
@SqsListener(value = orderQueue, deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
我有以下 SQS 配置:
public QueueMessagingTemplate queueMessagingTemplate(AmazonSQSAsync amazonSQSAsync)
return new QueueMessagingTemplate(amazonSQSAsync);
并使用以下依赖项:
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-aws</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-aws-messaging</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
我主要是在寻找关于如何配置@SqsListener 以根据消息组 ID 读取消息的答案。
【问题讨论】:
【参考方案1】:我认为即使是 AWS sdk 也没有提供通过 groupId 使用消息的方法。 groupId 基本上只是一种在 Fifo 队列中构建消息集群的机制。然后保证集群内的消息按照它们发送的顺序传递。
【讨论】:
以上是关于使用 @SqsListener 注解为 FIFO 配置消息组 ID的主要内容,如果未能解决你的问题,请参考以下文章
将 SqsListener 与 SNS 和 SQS 一起使用