前提
User Center 是已经通过测试并部署的微服务,有用户注册,登录,验证码,用户信息管理等功能,但还未开放给用户使用。
对于UC,所有的接口自动化已经做好,覆盖率90%以上。
今天,UC的接口自动化在pipline上大面积报错。
错误现象
由于自动化大面积报错,于是开始看log并手动复测功能来定位问题,
最后发现所有的接口请求都是一次成功,下一次必定失败,
50%的成功率。
推测
由于已经通过测试,并且代码开发已经很久没动过了,排除代码逻辑错误的可能。
推测是环境问题。
原因
最后经过排查,发现是有新入职的开发将dev环境的UC又重新注册到consul上了,所以现在consul上有两个一摸一样的UC服务,一个是正常连接DB/redis的,一个是新注册未连接DB/redis的。
所有的密码登录/验证码等均是外部接口,需要经过网关才能访问到服务。
网关上配置了负载均衡(LB),所以每两次请求,一次被分配到了正常的UC服务,一次被分配到了错误的UC服务,所以现象是一次成功,一次失败,交替出现。