【问题标题】:Micro-services approach: Isolation and decoupling微服务方法:隔离和解耦
【发布时间】:2017-03-10 20:17:38
【问题描述】:

我必须在我的微服务架构中添加一个服务,并且 我的新服务需要计算他负责的数据。这些计算以相对较高的频率发生。

为了计算事物,我的新服务需要从另一个服务中检索额外的信息(比如说从同一个限界上下文中)

这里的问题是每次计算上的所有这些调用都可能导致一些性能问题。

您认为在这里采取的最佳方法是什么? 让我的新服务保存它需要的附加信息的一种快照(与其他服务异步同步)是一个好主意,这样它就不必在每次需要计算时都执行所有这些调用。

【问题讨论】:

  • 附加信息可以更改吗?如果没有,你可以使用 LoadingCache 或 Redis。
  • 在存储数据的同一台机器上执行计算怎么样?重复呢?
  • @pscuderi 是的,它们的变化频率与计算不同,但它们会发生变化。

标签: architecture microservices


【解决方案1】:

使用某种形式的缓存

无论你如何扭曲它,你都需要某种形式的缓存。如果这是您需要缓存数据的唯一地方,并且您还没有像 Redis 这样成熟的缓存系统,请尽量保持简单。

一种简单的方法是在执行高频计算的应用程序中使用内存缓存。根据您的应用程序,这可能是也可能不是一个选项。

如果你这样做,为你正在加载的数据引入一个代理,并确保你有一个干净的接口,即不要泄露数据缓存到客户端的事实.然后,在代理实现中,适当地缓存数据,例如在异步刷新缓存之前保持 X 秒。

【讨论】:

    猜你喜欢
    • 2019-05-24
    • 2019-07-29
    • 2017-10-06
    • 2017-10-12
    • 1970-01-01
    • 2020-04-25
    • 2023-03-31
    • 1970-01-01
    • 2018-12-09
    相关资源
    最近更新 更多