如何从非事件源系统填充微服务?

问题描述 投票:0回答:1

我们目前正在运行一个整体系统,我们正在考虑将其拆分为微服务架构。我们还希望采用事件溯源。

我的问题是,我能找到的所有文章和视频都描述了将新服务启动到现有微服务架构中的相同方法;通过您的新服务运行所有事件,它将最终处于正确的状态。

我的问题是,该解决方案涵盖了已经事件溯源系统中的新微服务,而不是已经单一架构中的新微服务(即我们没有任何事件可以启动)。

我已经考虑了一些解决方案(例如从整体暴露 api 或让微服务从整体数据库的数据转储启动),但我很难弄清楚其他人在这种情况下做了什么,所以我的问题是;

是否有任何“最佳实践”解决方案/策略可以从非事件源的整体启动微服务?

microservices server-sent-events
1个回答
0
投票

我首先要说的是,这“不是”一项容易的任务。在进入编码部分之前还有很多事情要做。老实说,这不是通常会做的事情。事件溯源是一种应该从一开始就应用的模式:迁移是困难、复杂和痛苦的。 既然你有一个整体,你首先必须定义你拥有哪些边界上下文。这将有助于拆分代码库(尽管公平地说,这可能不是一个好主意。但这超出了范围)。

一旦确定了它们,您就必须开始定义每个微服务中的“事件”。这些必须非常具体,因此请避免执行“用户更新”或“单击按钮”之类的操作。而是做一些诸如“电子邮件已更改”或“已下订单”之类的事情。简而言之,事件必须谈论领域概念。

现在,回到你原来的问题,你很可能将你当前的状态视为 T0 时的“快照”。您可以使用一种特殊类型的事件,例如“用户初始化”,它基本上包含引导您的实体所需的所有有效负载。

© www.soinside.com 2019 - 2024. All rights reserved.