假设我有两个服务A和B,A的一个实体与B中的某个实体有关系。我应该把检查逻辑放在哪里?
我考虑了两个选项
- 在插入之前使用Ocelot API网关检查记录是否存在
- 在插入记录并在服务a添加一致性标志的地方使用异步消息。服务a将发布一个事件:CheckExistianceEvent并侦听由B发布的事件:RecordExisticeEvent
我认为我的两个解决方案都不好,并且引入了耦合。我一直在寻找解决方案,但我什么都不清楚。
关于我应该在哪里检查记录的存在,有什么建议吗?
最小化耦合的方法是让服务B在创建(和删除,如果存在(其实体时发布事件。然后,任何需要知道B拥有的给定实体是否存在的服务(如A(都可以维护自己对哪些实体存在的看法,而不管B是否成立。