上一期我给你讲述了服务追踪的基本原理,有了分布式服务追踪系统,在服务出现问题的时候,我们就可以定位服务哪里出现了问题。一般单体应用改造成微服务架构后,还会增加哪些问题呢?又该如何应对呢?
前面我讲到单体应用改造为微服务架构后,服务调用由本地调用变成远程调用,服务消费者 A 需要通过注册中心去查询服务提供者 B 的地址,然后发起调用,这个看似简单的过程就可能会遇到下面几种情况,比如:
-
注册中心宕机;
-
服务提供者 B 有节点宕机;
-
服务消费者 A 和注册中心之间的网络不通;
-
服务提供者 B 和注册中心之间的网络不通;
-
服务消费者 A 和服务提供者 B 之间的网络不通;
-
服务提供者 B 有些节点性能变慢;
-
服务提供者 B 短时间内出现问题。
可见,一次服务调用,服务提供者、注册中心、网络这三者都可能会有问题,此时服务消费者应该如何处理才能确保调用成功呢?这就是服务治理要解决的问题。
接下来我们一起来看看常用的服务治理手段。
节点管理
根据我的经验,服务调用失败一般是由两类原因引起的,一类是服务提供者自身出现