关于主题名称的最佳做法是什么

时间:2019-04-11 16:05:50

标签: google-cloud-pubsub

使用google-pubsub进行有关主题名称的最佳做法是什么。

如果我有这些事件:

  • 客户电子邮件已更新
  • 客户地址已更新
  • 创建客户
  • 客户已删除
  • 已创建文章
  • 文章已删除 ...

关于主题名称的最佳做法是什么?

  • 创建一个customer主题和一个article主题,每个主题都包含其域中的​​事件
  • 创建一个deleted主题,其中将包含customer deletedarticle deleted,等等。
  • 通过事件customer:createdcustomer:deleted等创建主题...

或其他..

1 个答案:

答案 0 :(得分:1)

有关主题的决定实际上取决于用例。如果您的整个系统体系结构在客户/文章或创建/更新/删除中都有清晰的描述,则可以按照相同的思路将主题划分开。如果不是这样,则在拆分为多个主题时可能会少用些。

确定拆分方式的一种方法是考虑每条消息的类型。如果将所有这些主题分开,它们是否都具有相同类型的消息(可能是“事件”消息),或者消息类型会有所不同?如果它们不同,那么不同的主题可能有意义。

最有趣的可能是订阅方的行为。同一订户会对客户和商品的事件感兴趣吗?还是每个订户都不同?创建/删除/更新呢?沿着这些界线分裂的可能性较小。如果所有订户对所有消息都感兴趣,那么单个主题可能是合理的。否则,一个订户将不得不从多个订阅中接收消息。如果某些订阅者对消息的子集感兴趣,那么单独的主题(因此,单独的订阅)可能会有所帮助。否则,订户将必须查看所有消息并立即确认他们不感兴趣的消息,因为Google Cloud Pub / Sub目前不支持过滤。如果是混合的话,那就是在对所有消息感兴趣的订户(使用不同的主题)的复杂性与对子集感兴趣的订户(使用相同的主题并且必须过滤)的复杂性之间进行权衡。