【问题标题】:Azure service bus: is it wise to create a separate topic for every event you broadcast?Azure 服务总线:为您广播的每个事件创建一个单独的主题是否明智?
【发布时间】:2019-09-27 21:34:45
【问题描述】:

我正在尝试设计我的组织将用于创建主题的策略,以及哪些消息将发送到哪个主题。我正在考虑为每个事件创建一个单独的主题,或者一个单独的主题来保存来自所有事件的消息,然后使用过滤器进行分类。我相信为每个事件使用单独的主题会更好,因为:

  • 过滤器将不那么复杂,因此性能更高,因为每个 事件已在其自己的主题中分开。
  • 在任何给定主题中消息拥塞的可能性都会降低。
  • 消息不太可能被不必要地复制到任何给定的 订阅。
  • 更多主题意味着更多消息存储,这意味着更好的消息 检索和发送。
  • 从风险管理的角度来看,似乎有更多的话题 更好。如果我只使用一个主题,中断将影响所有 所有消息的订阅者。如果我使用很多主题,那么中断可能只会影响一些 主题并让其他主题保持正常运行。
  • 每个主题我获得了 12 个以上的共享访问密钥。更容易对哪些主题进行更精细的控制 暴露给哪些客户端应用程序,因为我可以添加/撤销访问权限 按主题添加/撤销每个应用的共享访问密钥。

任何想法将不胜感激

【问题讨论】:

  • 这是stackoverflow.com/q/57928818/59563的副本吗?
  • 我可以删除旧的并保留这个吗?
  • 不知道。你问的是同一个问题,这不是一个单一的答案。不会是因为它是关于你所知道的系统的设计。当涉及到拓扑问题时,没有灵丹妙药。

标签: azure azureservicebus azure-servicebus-topics


【解决方案1】:

就像肖恩已经提到的那样,确实没有一个答案,但这里有一些关于主题的细节可以帮助你。

  1. 主题是通过向多个(最多 2000 个)订阅(实际上具有过滤器)发送消息来为大量收件人设计的
  2. 主题并不真正存储消息,但订阅可以
  3. 对于中断,除非您有跨区域的主题,否则我不确定这是否会有所帮助
  4. 限制是针对每个策略的共享访问授权规则。您应该使用其中之一为您的客户生成 SAS 密钥。

另外,chaining service bus with autoforwarding 是您可以根据需要考虑的。

【讨论】:

    猜你喜欢
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多