侧边栏壁纸
博主头像
背锅小王子博主等级

我从事运维工作有十年之久,主要从事云原生相关的工作,对k8s、devops、servicemesh、可观察性等较为熟悉!

  • 累计撰写 59 篇文章
  • 累计创建 64 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

盘查网关返回30s超时思路

背锅小王子
2022-07-30 / 0 评论 / 0 点赞 / 209 阅读 / 511 字
温馨提示:
本文最后更新于 2022-11-14,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1、情况说明

下游服务调用网关会出现30s超时的情况,请求一会好,一会超时的情况,网关日志可以看到请求有的正常,有的30s超时

2、具体盘查思路如下

  • 首先怀疑是后端服务出现故障导致,然后盘查后端服务,多次请求接口都是正常返回,所以排查后端服务问题
  • 然后盘查alb,是否正常,多次通过alb地址访问接口地址依旧是正常返回,所以也不是alb的问题
  • 通过上面两个步骤的盘查可以基本排除了下游服务问题
  • 然后盘查网关调用后端服务是否正常,在网关服务器通过后端的alb地址直接调用接口,多次请求,会出现30s超时的情况
  • 到此盘查出来是网关问题导致,但是具体是什么原因导致网关返回30s超时,还需要具体分析
  • 盘查网关服务器各种指标是否正常,指标都正常
  • 通过dig命令在网关服务器解析出来后端的alb地址和在下游服务器解析出来的alb地址不一致
  • 由此参测是因为aws的alb地址变动,网关解析记录没有及时更新导致
  • 然后通过reload网关服务器后,查看请求一切正常,没有再出现30s超时情况
  • 由此确定是由于aws的alb地址变动,网关解析记录没有及时更新导致

3、通过nginx的插件jdomain可以实现域名的动态解析来解决此问题

配置如下:

resolver 8.8.8.8;
upstream www {
  jdomain www.bgxwz.com port=80 interval=20;  #每隔20s做一次解析
}


server {
	listen 80;
  server_name  www.bgxwz.com;
  
	location /  {
           proxy_set_header Host $proxy_host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forward-For $remote_addr;
           proxy_pass http://www;
      }
}
0

评论区