【发布时间】:2021-02-03 07:38:06
【问题描述】:
我有一个用户微服务,它在创建、修改或删除用户时发布事件。另外,我有一个需要用户数据的日历微服务。日历服务订阅用户事件并保留所需数据的只读副本。
我刚刚添加了一个需要现有用户数据的帐户微服务,并且我使用了与上述相同的模型。将现有用户数据导入帐户微服务的最佳方式是什么?
当我做第一个微服务时,我为每个用户重新发布了用户修改事件。这很简单,因为没有其他东西在使用这个事件。如果我现在重新发布,对于新的帐户微服务,现有的日历微服务也将获得事件。我的逻辑是幂等的,但这是很多浪费的工作,而且随着我获得更多服务只会变得更糟。
我过去加载过很多数据。我知道如何让它发挥作用,但我正在寻找一种最佳实践和一种方法,以最大限度地减少与其他服务的协调和依赖。
【问题讨论】:
-
在远程服务赶上之前查询事件怎么样?否则,我认为可以做到这一点的唯一其他方法是拥有一个专用的消费者队列,您只能在那里重新发布事件。这与消费者在队列中缓冲消息时从未上线的结果相同。
-
时间戳有用吗?
标签: microservices domain-driven-design message-queue messaging domain-events