Spring Cloud AWS - 将消息发送到 fifo 队列

Ric*_*oft 2 amazon-sqs spring-cloud-aws

我正在使用 spring-cloud-aws 向 SQS FIFO 队列发送消息。

它失败了

请求必须包含参数 MessageGroupId

spring-cloud-aws-messaging 中的 QueueMessagingTemplate 上似乎没有任何地方允许我设置此强制性 MessageGroupId。

目前是否有一种方法可以写入这个庄园中的 SQS FIFO 队列,或者我是否必须恢复到直接使用 amazons API?

小智 7

Spring Cloud AWS 自 2017 年起支持 FIFO 队列,按照:Add Support for FIFO SQS Queues #252

您只需要添加两个必需的参数(messageGroupId 和 messageDeduplicationId),如下例所示:

public void send(String topicName, Object message, String messageGroupId, String messageDeduplicationId) throws MessagingException {
    Map<String, Object> headers = new HashMap<>();
    headers.put("message-group-id", messageGroupId);
    headers.put("message-deduplication-id", messageDeduplicationId);
    messagingTemplate.convertAndSend(topicName, message, headers);
}
Run Code Online (Sandbox Code Playgroud)