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

Posted

技术标签:

【中文标题】关于主题名称的最佳做法是啥【英文标题】:What is the best practise concerning topic names关于主题名称的最佳做法是什么 【发布时间】:2019-09-02 08:18:42 【问题描述】:

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

如果我有这些事件:

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

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

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

或者其他..

【问题讨论】:

【参考方案1】:

关于主题的决定实际上取决于用例。如果您的整个系统架构在客户/文章或创建/更新/删除之间有清晰的划分,那么沿着这些相同的方向拆分主题可能是有意义的。如果不是,那么拆分为多个主题的用处可能会减少。

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

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

【讨论】:

以上是关于关于主题名称的最佳做法是啥的主要内容,如果未能解决你的问题,请参考以下文章

在 div 中垂直对齐文本的最佳做法是啥? [复制]

RxSwift:使用 DisposeBag 的最佳实践是啥?

为 WebSocket 连接更新令牌的最佳做法是啥

(在表格中搜索)最佳做法是啥? [关闭]

创建链接以重置密码的最佳做法是啥? [关闭]

添加视频背景视图的最佳做法是啥?