aws fifo 队列无法接收 messageGroupID
aws fifo queue cannot receive messageGroupID
我想在从 aws fifo sqs 检索后区分消息以路由到正确的处理器。我计划使用 MessageGroupId ,这是我在发送请求时设置的。
我正在使用 Java SDK。
sendMessageRequest.setMessageGroupId(messageGroupId);
Documentation表示可以作为AttributeName的请求参数获取
MessageGroupId - Returns 调用 SendMessage 操作的发件人提供的值。具有相同 MessageGroupId 的消息按顺序返回。
但是,我找不到正确的 way/method 来这样做。没有属性
MessageGroupId 存在且大小为 0。
List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
for (Message message : messages)
{
System.out.println(" Size getAttributes: " + message.getAttributes() .size());
}
只有当我显式设置任何属性时它才可检索(如 和 MESSAGEPRIORITY),但如何接收 MessageGroupId 等属性的值?
感谢帮助。
您必须告诉 SQS 您希望它为您提供哪些属性,然后 getAttributes()
才能向您显示它们。
List<Message> messages = sqs.receiveMessage(receiveMessageRequest.withAttributeNames("All")).getMessages();
请注意,SQS 消息具有两种不同的属性。 属性 是系统生成的(如 MessageGroupId
),而 消息属性 是用户生成的,包括自定义 key/value 对当消息已发送但在消息正文本身外部传输时。
我想在从 aws fifo sqs 检索后区分消息以路由到正确的处理器。我计划使用 MessageGroupId ,这是我在发送请求时设置的。 我正在使用 Java SDK。 sendMessageRequest.setMessageGroupId(messageGroupId);
Documentation表示可以作为AttributeName的请求参数获取
MessageGroupId - Returns 调用 SendMessage 操作的发件人提供的值。具有相同 MessageGroupId 的消息按顺序返回。 但是,我找不到正确的 way/method 来这样做。没有属性 MessageGroupId 存在且大小为 0。
List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
for (Message message : messages)
{
System.out.println(" Size getAttributes: " + message.getAttributes() .size());
}
只有当我显式设置任何属性时它才可检索(如 和 MESSAGEPRIORITY),但如何接收 MessageGroupId 等属性的值?
感谢帮助。
您必须告诉 SQS 您希望它为您提供哪些属性,然后 getAttributes()
才能向您显示它们。
List<Message> messages = sqs.receiveMessage(receiveMessageRequest.withAttributeNames("All")).getMessages();
请注意,SQS 消息具有两种不同的属性。 属性 是系统生成的(如 MessageGroupId
),而 消息属性 是用户生成的,包括自定义 key/value 对当消息已发送但在消息正文本身外部传输时。