一次线上网络问题的排查

现象描述

那天晚上项目准备发布预发环境,发布的内容是接入微信修改结算银行卡信息的接口,测试环境测试完全没有问题,但是发布到预发环境后发现功能不能用。那么问题来了,为什么测试环境没问题但是预发环境有问题呢?

排查步骤

1、查看日志发现是获取证书时网络请求失败,请求超时

 

2、查看代码找到报错的地方,查看okHttp客户端初始化是否设置了超时时间,发现设置了超时时间;其实不太可能是代码的问题的,因为测试环境都可以的话,大概率是环境问题。

3、找到发送的网络请求链接,发现是个https请求,猜测有可能是测试环境支持https请求,预发环境不支持https请求

4、登录预发机器使用curl命令访问该链接,发现返回Protocol https not supported or disabled in libcurl

curl https://api.mch.weixin.qq.com/v3/certificates

5、登录测试机器访问https://api.mch.weixin.qq.com,发现返回{"code":"PARAM_ERROR","message":"Http header信息不完整"},这个说明微信服务器已经接收这个请求并且返回了,只是请求参数有问题。说明测试环境是可以访问这个地址的

6、于是上网搜索解决了预发环境的curl不支持https问题,再次访问第3步的链接,发现请求一直得不到响应。说明此时https的问题已经解决了,怀疑是域名解析的问题。

8、为了验证是否是域名解析的问题,首先登陆测试环境的机器,ping一下https://api.mch.weixin.qq.com这个域名;

然后登陆预发环境的机器,ping一下这个域名发现ip确实不一样,说明是域名解析的问题

9、刷新预发机器的本地DNS缓存,然后再次ping https://api.mch.weixin.qq.com这个域名,发现ip仍然没有变化

10、其实当时解决问题走到第8步的时候发现ip解析有问题,应该先检查下本地的host文件是否手动写死了ip地址,如果没问题再去刷新本地的dns缓存。当时我们是先刷新了dns缓存才检查的本地host文件,确实是host文件手动写死了ip地址。

vi /etc/hosts

ok,问题解决。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
线上内存飙升是一个比较严重的问题,如果不及时处理,可能会导致系统崩溃。以下是一般的排查问题的过程: 1. 监控告警分析:系统应该有监控告警机制,如果内存使用率过高,应该及时发出告警并记录监控数据。首先,需要分析告警信息和监控数据,确认内存使用率确实出现了异常。 2. 定位问题代码:通过监控工具、日志和代码调试等方法,确定哪些代码出现了内存使用率飙升的问题。可以使用 JVM 的内存分析工具,例如 jmap、jhat、jstack、VisualVM 等来分析内存使用情况,并找出内存泄漏的代码位置。 3. 解决问题代码:根据定位出的代码问题,进行修复。对于内存泄漏问题,需要分析代码中的对象生命周期,释放不再使用的对象,并检查是否存在对象引用未释放的情况。对于频繁创建和销毁对象、大对象等问题,需要优化代码逻辑,减少内存占用。 4. 测试验证:完成修复后,需要进行测试验证,确保问题得到了解决,并且没有引入新的问题。 5. 监控预警优化:针对该问题,需要优化监控预警机制,避免类似问题再次出现。可以增加更加详细的监控数据、设置更加敏感的告警阈值等等。 总之,线上内存飙升是一个比较严重的问题,需要及时发现、定位、修复和验证。同时,也需要优化监控预警机制,避免类似问题再次出现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值