【发布时间】:2020-07-01 15:40:40
【问题描述】:
我正在设计一个微服务,它将根据用户采取的行动(例如对问题的正确答案的数量)对用户进行排名。
A --> 我正在设计的系统。它根据来自B的数据更新排名并保存在数据库中。
B ---> 向 A 提供数据的系统。基本上,它保存特定用户执行的操作。
微服务 A 根据 B 的数据更新排名。
我想每天更新一次用户排名。假设在午夜假设它不是关键数据,并且我希望 A 在将数据提供给 B 时避免计算用户对他们执行的每个操作的排名。
我相信我有两种选择。
- 从 A 到 B 进行 API 调用,并根据午夜的时间戳查找所有新数据。
- 在 A 和 B 之间放置一个消息代理。作为生产者的 B 将产生消息,而 A 将使用它。
如果它们是有效的方法,请告诉我。如果是,哪个更好,或者我们可以通过其他方式实现。
【问题讨论】:
标签: microservices system-design