业务场景:项目上线,需要重启网关gateway服务,重启后所有服务一直502,客户直接电话轰炸过来…
我的分析步骤
第一步:进行观察gateway是否启动成功,然后观察nginx日志是否成功,其次观察对应需要转发的服务是否启动成功(举例用订单服务)。
一番查询日志,结果发现,订单服务正常,gateway服务也启动正常,nginx也运行正常。
我r,这么骚的问题今天让我遇到了。
第二步:分析调用链路从哪里断的,直接看日志,nignx处一直502,响应根本就没到gateway服务去。(我擦了,这什么问题呢?抠脑壳)
分析
经过百度得知,我们nginx也适用docker启动的,gateway也是docker启动的,
1.docker的应用ip好像是默认动态分配的
2.并且我们nginx配置文件中写的好像是域名转发?什么dns好像会有缓存ip,也就是说nginx缓存了gateway之前的ip,nginx转发到gateway一直走的是缓存,新创建的容器的ip一直没有被访问到,所以一直502
解决办法
重启nginx即可,重新缓存一份gateway 的最新ip(百度的)