我应该在什么级别检查微服务中是否存在记录



假设我有两个服务A和B,A的一个实体与B中的某个实体有关系。我应该把检查逻辑放在哪里?

我考虑了两个选项

  1. 在插入之前使用Ocelot API网关检查记录是否存在
  2. 在插入记录并在服务a添加一致性标志的地方使用异步消息。服务a将发布一个事件:CheckExistianceEvent并侦听由B发布的事件:RecordExisticeEvent

我认为我的两个解决方案都不好,并且引入了耦合。我一直在寻找解决方案,但我什么都不清楚。

关于我应该在哪里检查记录的存在,有什么建议吗?

最小化耦合的方法是让服务B在创建(和删除,如果存在(其实体时发布事件。然后,任何需要知道B拥有的给定实体是否存在的服务(如A(都可以维护自己对哪些实体存在的看法,而不管B是否成立。

最新更新