TL; DR服务是否应该选择将数据保存在本地数据库中,或者每次从数据源发出的服务请求数据?微服务架构:查询服务或数据备份
让我们来看一个网络商店/订购应用程序的一般示例。服务A是用户会话管理服务。它处理用户正在做什么的业务逻辑,他可以做什么等等。用户可以创建自己的衬衫以供购买。服务B是一个数据聚合器,包含大量的库存和可用的数据。
用户开始创建一件衬衫,因此服务来自服务B的请求,可用的样式/颜色。服务B发送服务A然后显示给用户的可能选择的列表。用户然后选择一个,定制它并移动到新的衬衫上。再次,服务A必须从服务B请求什么样式/颜色可用。
现在让我们假设在用户会话的生命周期内,这些样式/颜色不会改变,我们知道这将是一次又一次检索的相同数据。不仅仅是这个用户,而是所有的用户。因此,在这种情况下,由于样式/颜色实际上是服务B的域的一部分,所以他们应该呆在那里并住在那里,或者建议防止所有这些不必要的呼叫,并且在第一次请求(暂时)保存在服务A中用于会话生命周期的数据以防止聊天服务。
这是一个过分简化的例子,但问题仍然是现实世界。哪个更适合架构这种设计? 这通常适用于某些相当静态的数据正在通过某些服务时,并且此服务将在这些事务的生命周期内再次需要此数据几次。所以我不确定服务是否应该在生命周期中临时保存它,以知道数据不会改变,或者不关心它是否在生命周期内发生变化,或者选择更多健谈的服务并且每次都要求提供请求。