想象一下:
我有两个选择:
1)使用kafka,对于插入数据库的每个团队,我发送一个事件,玩家听这个事件并在玩家微服务中更新自己的团队表。因此,玩家微服务将拥有关于团队和玩家实体的信息,以便建立他们之间的关系。
我们在这里有一些关于数据复制和完整性的缺点。可以使用事件源和cqrs来避免。
2)调用微服务团队以便在视图中列出团队,进行关联并发布给玩家微服务。
缺点:调用http团队服务可能会失效。
在微服务之间进行通信的正确方法是什么,以便存档依赖关系并在微服务之间进行关联。在第1步复制的数据是否合理?
答案 0 :(得分:1)
我想说选项1是有利的。然后,您将保持服务分离/独立。它也会扩展,因为其他未来的服务可以订阅相同的事件。
我认为数据复制不是一个问题。我更喜欢DDD方法,即各个服务在自己的上下文中控制自己的数据。然后,服务可以根据需要进行,以满足其特定目的。