Compartilhar via

Azure Service Bus - 高级功能

Service Bus包括高级功能,可帮助你解决更复杂的消息传送问题。 本文介绍其中几个功能。

消息会话

若要在Service Bus中创建先入先出(FIFO)保证,请使用会话。 消息会话使能够专有、有序地处理没有边界的序列相关消息。 为了支持在大规模、高可用性系统中处理会话,会话功能还支持存储会话状态,从而允许会话安全地在处理程序之间移动。 请参阅消息会话:先进先出 (FIFO)以获取详细信息。

自动转发

自动转发功能将队列或订阅链到同一命名空间中的另一个队列或主题。 使用此功能时,Service Bus自动将消息从队列或订阅移动到目标队列或主题。 这样的移动都通过事务方式完成。 有关详细信息,请参阅将 Service Bus 实体与自动转发进行链式连接

死信队列

所有Service Bus队列和主题的订阅都有关联的死信队列(DLQ)。 DLQ 中保存消息,这些消息满足以下条件:

  • 无法成功传递到任何接收方。
  • 已超时。
  • 他们被接收应用程序明确忽视。

死信队列中的消息被批注,并说明它们放置在那里的原因。 死信队列具有特殊的终结点,其他方面与任何常规队列类似。 应用程序或工具可以浏览 DLQ 或从中出队。 你也可以将消息自动转发出死信队列。 有关详细信息,请参阅Service Bus 死信队列概述

预定的送货

可以将消息提交到队列或主题以进行延迟处理,并设置消息可供消费的时间。 还可以取消预定的消息。 有关详细信息,请参阅定时消息

消息延迟

队列或订阅客户端可以推迟到稍后时间检索收到的消息。 消息可能被发布在非预期的顺序,客户端希望等到它收到另一条消息。 延迟的消息保留在队列或订阅中,必须使用服务分配的序列号显式进行重新激活。 有关详细信息,请参阅消息延迟

交易

一个事务将两个或更多操作组合成执行作用域。 Service Bus允许在单个事务的范围内对多个消息实体的操作进行分组。 消息实体可以是队列、主题或订阅。 有关详细信息,请参阅 Service Bus 的事务处理概述

空闲时自动删除

可以使用“在空闲状态下自动删除”功能指定一个空闲时间间隔,该时间间隔过后队列或主题订阅会被系统自动删除。 在向订阅中添加或删除消息时,间隔将重置。 最短持续时间为 5 分钟。 有关实体空闲情况的概述,请参阅空闲

重复检测

重复检测功能使发送方能够重新发送相同的消息,同时使代理能够丢弃潜在的重复消息。 有关详细信息,请参阅重复检测

批量删除消息

Azure Service Bus支持批量删除消息。 当队列或订阅中的消息过期或不再相关时,此功能非常有用,需要清理。 有关详细信息,请参阅批量删除

支持排序

支持顺序功能允许您指定:发送到主题的消息是否会按照发送时的顺序转发到订阅。 此功能不支持分区主题。 有关详细信息,请参阅 .NET 中的 TopicProperties.SupportOrdering 或 Java 中的 TopicProperties.setOrderingSupported

安全性

Service Bus支持标准 Advanced Message Queuing Protocol (AMQP) 1.0HTTP 或 REST 协议及其各自的安全设施,包括传输级别安全性(TLS)。 可以使用 共享访问签名Microsoft Entra ID 基于角色的安全性来授权客户端进行访问。

为了防止不需要的流量,Service Bus提供安全功能,例如 IP 防火墙和与虚拟网络的集成。

请参阅Service Bus消息传送示例,了解如何使用这些Service Bus功能。