azure - Microsoft Service Bus 是否会为主题中的每个订阅重复消息?

标签 azure azureservicebus servicebus

Azure 服务总线及其本地版本(适用于 Windows Server 的服务总线)是否为每个订阅者复制消息?

例如,假设有一个主题有五个订阅者,那么该消息是否会在服务总线的数据库中存储五次(每个订阅者一次),或者该消息仅存储一次,并通过业务逻辑来确定哪个消息订阅者已阅读该消息?

如果有官方网站和/或文档可供引用,那就太好了。

最佳答案

Azure 服务总线的行为似乎是为每个订阅者保留一份副本。我通过创建一个具有两个订阅的主题来对此进行测试。我发送了一条消息,发现主题的大小(以字节为单位)为 464(使用 topic.SizeInBytes)。当我收到一条订阅消息时,大小减半至 232。我用三个订阅对其进行了测试,并发生了相同的行为:696 字节。

即使他们没有为每个订阅保留消息副本,他们也会根据主题的最大大小(这可能是您试图确定的大小)来计算消息大小乘以订阅数量。

我同意,如果他们记录了该行为,尤其是 Windows Server 的服务总线,那就太好了,因为这可能会影响您需要预留的存储量的规划。至于 Azure 服务总线方面,我不确定幕后的实现是否比了解它如何影响主题的最大大小更重要。

关于azure - Microsoft Service Bus 是否会为主题中的每个订阅重复消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35831857/

相关文章:

java - RabbitMQ Java 客户端到 Windows 服务总线

azure - 为基于 powershell 的 Azure 部署启用 IntelliTrace

azure - 用于从 Azure 中的外部应用程序搜索 Dynamics CRM 中的记录的通配符表达式

Azure 服务总线 - 主题和订阅权限

azure - Redis 与服务总线的发布/订阅场景

java - 是否有与 Java 7 兼容的 Azure 服务总线版本?

servicebus - "No service is hosted at the specified address"访问 Windows Server 1.1 的服务总线时

linux - 向在 Azure 上配置的 VM 提供附加参数

Azure:如何查找容器注册表的所有者或资源 ID?

azure - 如何在azure服务总线中推送最大长度消息