有一个在线赌场应用程序想要根据特定玩家的游戏类型获取经过过滤的帐户列表,这些玩家可根据如下请求获得注册奖金:
GET/players/accounts?playerId=123,gameType=roulette
还有两个微服务:账户、游戏。 帐户服务有一个玩家ID、帐户类型ID、帐户编号的列表。 游戏服务有一个gameType、accountTypeId列表
在高负载微服务架构中将此应用程序与微服务集成的架构解决方案应该是什么?
我的选择:
这是另一种解决方案。
假设通常每个微服务都有自己的数据库。如果您知道您的微服务 A 将查询大量微服务 B,因为需要其中的一些数据,另一种选择是将相关数据从 B 复制到 A。这样,B 仍然是其数据的“真实来源”,但 A 变得更加自主。
此选项带来了另一个问题,即 B 和 A 之间的数据一致性。最常用的同步技术是每当 B 内的数据被修改时,从 B 向 A 发送一个事件。该事件有一个有效负载,其中包含更新数据所需的所有必要信息A面。
该解决方案显然需要设置一个事件/消息总线,其中 A 订阅 B 的域事件。