我想要将retreiving后的消息与aws fifo sqs区分开,以便路由到正确的处理器。我计划利用我在发送请求时设置的MessageGroupId。 我正在使用Java sdk。 sendMessageRequest.setMessageGroupId(messageGroupId);aws fifo队列无法接收messageGroupID
Documentation说,它可以作为的AttributeName
MessageGroupId的请求参数被检索 - 返回调用的SendMessage动作发送者提供的值。具有相同MessageGroupId的消息按顺序返回。 但是,我找不到正确的方法/方法。没有属性 MessageGroupId存在,并且大小为0
List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
for (Message message : messages)
{
System.out.println(" Size getAttributes: " + message.getAttributes() .size());
}
只有当我设置任何属性明确那么retreivable(如与MESSAGEPRIORITY),但如何接收到类似MessageGroupId属性的值?
帮助表示赞赏。
在receiveMessageRequest.withAttributeNames(“All”)之后使用message.getAttributes(),如下面的回复中所建议的。 – snijhi