Design patterns 相互依赖的微服务是否应该复制依赖服务的数据

Design patterns 相互依赖的微服务是否应该复制依赖服务的数据,design-patterns,service,architecture,microservices,grpc,Design Patterns,Service,Architecture,Microservices,Grpc,我们有N个微服务,其中N可以大于10。这N个微服务依赖于主微服务M。因此,改善系统中的延迟,我们在每个微服务1-N中复制有限的上下文信息。我想从外部角度了解更多信息,我们是否走上了正确的道路,或者是否有其他方法来处理微服务之间的通信。总结一下,有N个微服务,每个微服务都依赖于某个共享上下文。为了提高性能,每个微服务都在本地缓存上下文视图 复制是否是正确的方法取决于共享上下文的具体情况。分布式系统中本地缓存的好处大致基于以下几点: 语境的特点是什么 在短时间内使用陈旧的上下文视图是否可以接受 需要

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

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

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

  • 语境的特点是什么
  • 在短时间内使用陈旧的上下文视图是否可以接受
  • 需要多久访问一次上下文
  • 给定的本地缓存访问成功的可能性有多大
  • 我认为,在以下情况下,本地缓存是值得的:

  • 上下文不经常更新
  • 短期内使用陈旧视图是可以接受的
  • M无法处理从N读取的数量,或者N无法负担从M读取的成本
  • 在本地缓存中找到给定上下文的可能性很高
  • 在某些设置中,网络调用可能相对较快,处理陈旧上下文的可能性和适当调整本地缓存的大小都有其自身的问题。但是,如果N个服务需要更高的吞吐量,或者M是瓶颈,并且数据非常适合缓存,那么本地缓存是一种合理的方法。如果要缓存大量数据,或者不想手动处理缓存失效,则可以考虑使用分布式缓存服务