【问题标题】:should Inter dependent microservices replicate data of dependent service相互依赖的微服务是否应该复制依赖服务的数据
【发布时间】:2021-01-11 14:42:51
【问题描述】:

我们有 N 个微服务,其中 N 可以大于 10。这 N 个微服务依赖于主微服务 M。因此,为了改善系统中的延迟,我们在每个微服务 1 - N 中复制有界上下文信息。我想了解更多信息从外部的角度来看,我们是在正确的轨道上还是有另一种方法来处理微服务之间的这种通信。

【问题讨论】:

    标签: design-patterns service architecture microservices grpc


    【解决方案1】:

    总而言之,有 N 个微服务,每个微服务都依赖于某些共享上下文。为了提高性能,每个微服务都在本地缓存上下文视图。

    复制是否是正确的方法取决于共享上下文的具体情况。分布式系统中本地缓存的好处大致基于以下几点:

    1. 上下文的特点是什么?
    2. 是否可以在短时间内使用陈旧的上下文视图?
    3. 需要多久访问一次上下文?
    4. 给定的本地缓存访问成功的可能性有多大?

    在我看来,在以下情况下值得在本地缓存:

    1. 上下文不经常更新。
    2. 在短时间内使用陈旧的视图是可以接受的。
    3. M 无法处理来自 N 的读取量,或者 N 无法负担来自 M 的读取成本。
    4. 很有可能在本地缓存中找到给定的上下文。

    在某些设置中,网络调用可能相对较快,处理陈旧上下文的可能性和正确调整本地缓存大小都有其自身的一系列问题。但是,如果 N 个服务需要更高的吞吐量或 M 个出现瓶颈并且数据非常适合缓存,则本地缓存是一种合理的方法。如果需要缓存大量数据或者不想手动处理缓存失效,可以考虑使用分布式缓存服务。

    【讨论】:

      猜你喜欢
      • 2021-05-12
      • 2016-07-22
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      • 2020-05-21
      • 2022-01-08
      相关资源
      最近更新 更多