Azure 微软';主题中每个订阅的服务总线复制消息?

Azure 微软';主题中每个订阅的服务总线复制消息?,azure,azureservicebus,servicebus,Azure,Azureservicebus,Servicebus,Azure服务总线及其内部版本Windows Server服务总线是否为每个订阅者复制了一条消息 例如,假设有一个主题有五个订阅者,那么该消息是否存储在服务总线数据库中五次(每个订阅者一次),或者该消息是否仅存储一次,并使用业务逻辑确定哪些订阅者已阅读该消息 如果有一个官方网站和/或文档可供参考,那就太好了。Azure服务总线的行为似乎是为每个订阅者保留一份副本。我通过创建一个包含两个订阅的主题来测试这一点。我发送了一条消息,发现主题的大小(字节)是464(使用Topic.SizeInBytes

Azure服务总线及其内部版本Windows Server服务总线是否为每个订阅者复制了一条消息

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


如果有一个官方网站和/或文档可供参考,那就太好了。

Azure服务总线的行为似乎是为每个订阅者保留一份副本。我通过创建一个包含两个订阅的主题来测试这一点。我发送了一条消息,发现主题的大小(字节)是464(使用Topic.SizeInBytes)。当我收到一条订阅消息时,订阅的大小会减半到232。我用三个订阅测试了它,出现了相同的行为:696字节

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

我同意,如果他们记录了这些行为,尤其是针对Windows Server的Service Bus,那将是一件好事,因为这可能会影响您需要留出的存储量的规划。至于Azure服务总线端,我不确定幕后的实现是否比了解它如何影响主题的最大大小更重要

对主题的订阅类似于接收消息的虚拟队列 发送到主题的消息的副本。你可以选择 在每个订阅的基础上注册主题的筛选规则 允许您筛选/限制接收到的主题消息 按哪个主题订阅

我认为它复制信息。如果它没有复制,它应该始终检查,是否所有订阅者都收到了消息?此外,若有过滤器,它应该只检查这些订阅者来删除消息。我认为,复制和应用简单的消费实现成本比不复制成本要低


存储很便宜。因此,复制这些消息是有意义的,而不是试图创建和维护一个极其复杂的逻辑来保持与多个订阅相关的信息同步。想想DLQ、锁定持续时间、空闲时自动删除、消息TTL v和订阅默认TTL、会话、批处理等。我不确定这对托管服务有多大帮助。ASB作为一种托管服务,被抽象出来,作为消费者,它被屏蔽了细节。对WSSB来说,这可能是另一回事。我同意肖恩的观点。对于托管ASB,这实际上只影响您需要的主题的最大大小。