微服务开发遇到的坑以及治理方案

 微服务常见的坑

  1. 现象1,服务A频繁调用服务B。将服务B打垮。
  2. 现象2,服务A接口依赖服务B、C、D的接口。由于服务C接口异常导致。导致整个接口异常。
  3. 现象3,服务A调用服务B。由于网络超时,服务A多次重试调用服务B的接口。导致脏数据。
  4. 现象4,由于服务A耦合了服务B、C、D接口。导致服务A接口负载能力低下

治理方案

查询场景

现象1: 下游接口对接口频繁调用导致接口异常

内部原因:

慢接口的请求qps过高打满应用线程池数。不能响应新的请求。

接口治理方案:

1. 线程隔离

2. 接口限流

现象2:接口调用多个上游服务接口,由于某个服务异常导致接口不可用

内部原因:

上游服务接口不稳定级联影响接口。

接口治理方案:

1. 服务降级

2. 服务熔断

更新场景

现象3:接口未实现幂等,导致多次调用出现脏数据。

内部原因:

对新增、更新类型的接口多次调用,由于未做幂等措施。将出现脏数据。

接口治理方案:

1. 对接口实现加锁

2. 唯一值判断。

现象4: 接口耦合多个上游接口,导致接口负载能力低下。

接口治理方案:

1. 对上游接口异步调用

2. 消息中间件异步解耦。

你可能感兴趣的:(微服务,分布式,架构)