使用google-pubsub进行有关主题名称的最佳做法是什么。
如果我有这些事件:
关于主题名称的最佳做法是什么?
customer
主题和一个article
主题,每个主题都包含其域中的事件deleted
主题,其中将包含customer deleted
和article deleted
,等等。customer:created
,customer:deleted
等创建主题... 或其他..
答案 0 :(得分:1)
有关主题的决定实际上取决于用例。如果您的整个系统体系结构在客户/文章或创建/更新/删除中都有清晰的描述,则可以按照相同的思路将主题划分开。如果不是这样,则在拆分为多个主题时可能会少用些。
确定拆分方式的一种方法是考虑每条消息的类型。如果将所有这些主题分开,它们是否都具有相同类型的消息(可能是“事件”消息),或者消息类型会有所不同?如果它们不同,那么不同的主题可能有意义。
最有趣的可能是订阅方的行为。同一订户会对客户和商品的事件感兴趣吗?还是每个订户都不同?创建/删除/更新呢?沿着这些界线分裂的可能性较小。如果所有订户对所有消息都感兴趣,那么单个主题可能是合理的。否则,一个订户将不得不从多个订阅中接收消息。如果某些订阅者对消息的子集感兴趣,那么单独的主题(因此,单独的订阅)可能会有所帮助。否则,订户将必须查看所有消息并立即确认他们不感兴趣的消息,因为Google Cloud Pub / Sub目前不支持过滤。如果是混合的话,那就是在对所有消息感兴趣的订户(使用不同的主题)的复杂性与对子集感兴趣的订户(使用相同的主题并且必须过滤)的复杂性之间进行权衡。