【发布时间】:2017-08-31 23:24:24
【问题描述】:
TL;DR 服务应该选择将数据保存在其偶尔需要的本地数据库中,还是每次都向数据来源的服务请求数据?
让我们举一些网络商店/订购应用程序的通用示例。服务 A 是用户会话管理服务。它处理用户正在做什么、他能做什么等业务逻辑。用户可以创建自己的衬衫以供购买。服务 B 是一个数据聚合器,包含大量库存和可用数据。
用户开始创建衬衫,因此服务 A 向服务 B 请求,有哪些款式/颜色可用。服务 B 发送一个可能的选择列表,然后服务 A 为用户显示该列表。然后用户选择一件,对其进行定制,然后穿上一件新衬衫。同样,服务 A 必须向服务 B 请求可用的样式/颜色。
现在让我们假设在用户会话的生命周期内,这些样式/颜色不会改变,我们知道这将是一遍又一遍地检索相同的数据。不仅仅是这个用户,而是所有用户。所以在这种情况下,由于样式/颜色确实是服务 B 域的一部分,它们应该留在那里并住在那里,或者是否建议防止所有这些不必要的调用,并在第一次请求时(暂时)保存在服务 A 中会话生命周期的数据,以防止聊天服务。
这是一个过于简单的示例,但问题仍然存在于现实世界中。哪种方式更适合构建此设计? 这通常适用于例如当一些相当静态的数据正在通过某个服务时,并且该服务将在这些事务的生命周期内再次需要这些数据几次。所以我不确定该服务是否应该在生命周期中暂时保存它,知道数据不会改变,或者不关心它是否在生命周期内发生变化,或者选择更多的聊天服务并每次都继续请求。
【问题讨论】:
标签: architecture domain-driven-design microservices