如果接收Azure功能停止,ServiceBus如何保证FIFO顺序?

问题描述 投票:1回答:1

我有一个客户端将消息推送到服务总线。我在另一端有一个绑定到服务总线的Azure功能,以便在服务总线中发布消息时自动调用它。

(Client) ---Message---> (Service Bus) ---Message---> (Azure Function)

Service Bus保证队列中的第一条消息是第一个出去的消息(FIFO)。

现在,我假设在一定负载下,将启动几个Azure功能来处理来自Service Bus的消息。

假设其中一个Azure功能崩溃(无论出于何种原因)并且无法处理消息。

Service Bus是否首先将未处理的消息放回原处,这是否意味着,从技术上讲,即使此消息是队列中的第一个消息,它确实可以在更新的消息之后处理?

azure azure-functions azureservicebus azure-servicebus-queues
1个回答
3
投票

您需要正确设置SessionID以保证订单。对于会话感知实体,此应用程序定义的值指定消息的会话从属关系。具有相同会话标识符的消息将受到摘要锁定,并启用精确的有序处理和解复用。对于不知道会话的实体,将忽略此值。请参阅消息会话。

https://docs.microsoft.com/en-us/azure/service-bus-messaging/message-sessions

© www.soinside.com 2019 - 2024. All rights reserved.