如何解决相互依赖的微服务应复制依赖服务的数据
我们有N个微服务,其中N可以大于10。这N个微服务依赖于主微服务M。因此,为了改善系统中的延迟,我们在每个微服务1-N中复制了受限的上下文信息。我想了解更多从外部角度来看,我们是否走上了正轨,还是有另一种方式来处理微服务之间的这种通信。
解决方法
总而言之,有N个微服务,每个微服务都依赖于某些共享上下文。为了提高性能,每个微服务都会在本地缓存上下文的视图。
复制是否正确,取决于共享上下文的细节。分布式系统中本地缓存的好处大致基于以下几点:
- 上下文的特征是什么?
- 在短时间内使用陈旧的上下文视图是否可以接受?
- 需要多长时间访问一次上下文?
- 给定的本地缓存访问成功的可能性是什么?
我认为,如果出现以下情况,则值得在本地缓存
- 上下文不经常更新。
- 在短时间内使用陈旧视图是可以接受的。
- M无法处理来自N的读取量,或者N无法承受来自M的读取费用。
- 在本地缓存中找到给定上下文的可能性很高。
在某些设置中,网络调用可能相对较快,并且处理陈旧上下文的可能性以及正确调整本地缓存的大小都有其自身的问题。但是,如果N个服务需要更高的吞吐量或M成为瓶颈,并且数据非常适合缓存,则本地缓存是一种合理的方法。如果要缓存大量数据,或者您不想手动处理缓存失效,则可以考虑使用分布式缓存服务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。