关于主题名称的最佳做法是啥
Posted
技术标签:
【中文标题】关于主题名称的最佳做法是啥【英文标题】:What is the best practise concerning topic names关于主题名称的最佳做法是什么 【发布时间】:2019-09-02 08:18:42 【问题描述】:关于使用 google-pubsub 的主题名称的最佳做法是什么。
如果我有这些事件:
客户电子邮件已更新 客户地址已更新 客户创建 客户已删除 文章已创建 文章已删除 ...关于主题名称的最佳做法是什么:
创建一个customer
主题和一个 article
主题,每个主题都包含其领域的事件
创建一个deleted
主题,其中将包含customer deleted
和article deleted
等......
通过事件customer:created
、customer:deleted
等创建主题...
或者其他..
【问题讨论】:
【参考方案1】:关于主题的决定实际上取决于用例。如果您的整个系统架构在客户/文章或创建/更新/删除之间有清晰的划分,那么沿着这些相同的方向拆分主题可能是有意义的。如果不是,那么拆分为多个主题的用处可能会减少。
确定如何进行拆分的一种方法是考虑每条消息的类型。如果您拆分所有这些主题,它们是否都具有相同类型的消息(可能是“事件”消息)或者消息类型会不同?如果它们不同,那么不同的主题可能是有意义的。
最有趣的可能是订阅端的行为。同一个订阅者会对客户和文章的事件感兴趣,还是他们的订阅者不同?创建/删除/更新呢?沿着这些路线分裂听起来不太可能。如果所有订阅者都将对所有消息感兴趣,那么单个主题可能是合理的。否则,订阅者将不得不接收来自多个订阅的消息。如果某些订阅者对消息子集感兴趣,那么单独的主题(因此,单独的订阅)可能是有益的。否则,订阅者将不得不查看所有消息并立即确认他们不感兴趣的消息,因为 Google Cloud Pub/Sub 目前不支持过滤。如果它是混合的,那么它是在对所有消息感兴趣的订阅者的复杂性(使用不同的主题)和对子集感兴趣的订阅者的复杂性(使用相同的主题并且必须过滤)之间进行权衡。
【讨论】:
以上是关于关于主题名称的最佳做法是啥的主要内容,如果未能解决你的问题,请参考以下文章