大厂如何提高微服务的可用性
背景:
在大厂中 整个项目中整个业务链路可能会很长,会涉及调用的上游或者下游的接口服务很多,很多接口服务是外部部门提供的某些业务能力,本不都是内部闭环的项目,存在接口中的项目依赖,那么怎么保证在长链路中提高服务的可用性呢?
通过如下两个方面实现:
1.强、弱依赖动态切换:正常情况下强依赖流程节点,当服务故障时,支持动态切换为弱依赖服务,不阻塞业务核流程,当故障恢复时自动切换。
2.故障自动修复:强依赖切换为弱依赖服务之后,依赖服务自动降级,故障期间的问题业务流程支持自动修复,不影响正常业务。
如下图:
一、强、弱依赖动态切换:强、弱依赖动态切换使用Hystrix熔断器实现,当服务正常时走同步调用流程,此时中台服务为强依赖。当调用的下层服务故障时将会触发降级,将会切换为异步逻辑,除了当前使用的调用的服务,其余业务流程保持不变。
二、故障自动修复:当服务故障降级为弱依赖时,此时降级调用的服务的请求将会异步重试调用服务,自动进行重试,从而实现故障期间的问题业务流程自动修复,不影响业务流程