【发布时间】:2018-10-23 16:47:05
【问题描述】:
作为一个人为的示例,假设我有一个 Posts 服务,用于包含所有博客文章的博客 Web 应用程序。这与其他服务共存,例如 Users 和 UserLikes,并且这些服务通过基于 pub-sub 的消息代理进行通信。
UserLikes 服务允许用户“点赞”某些帖子,并维护一个活跃用户列表以确保一致性。为此,它订阅来自Users 服务的消息,用于用户创建/删除/更新。
这一切都很好,但假设现在我想添加一个UserDislikes 服务。此服务在当前用户创建后生效,因此它不会从Users 服务接收当前用户作为新用户事件。我们应该如何将这项新服务与当前用户列表同步?
我最初的想法是让Users 服务定期发布所有当前用户对象的列表(比如 S3),并将此事件发布到 UserSync 主题。但是,很少需要像这样同步,而且导出不会响应另一个服务需要完全同步的事件。那么解决方案是什么?也许UserSyncRequest 消息主题是Users 服务订阅并在其他服务请求时导出的?
还有其他想法吗?
【问题讨论】:
标签: architecture microservices messaging publish-subscribe