10S延迟的诡异问题-标准化改变世界,不要迷恋手写代码

新机房启用之后,前置调用 处理,出现10S延迟。

1、抓包检查,确实存在10s延迟
2、两个主机同步时间之后,通过NC 调用没有发现明显的问题
3、netstat -s a ip -s link 未发现明显问题
4、对比内核参数未发现明显问题。

5、疑似问题: netstat 查看支付处理,Listen 的为 tcp6

解决:
专家查看server端代码
logger.info(String.format("获取新连接:%s-->%s",remoteSocketAddress.getHostName(),remoteSocketAddress.getPort()));

对比新老环境,老环境未启用DNS ,新环境启用了DNS
Java DNS 成功的超时时间为30s, 失败的超时时间为 10s
关闭DNS之后延时消失。

分析:
1、代码中的反查HostName,显然是一条copy来的代码,自己未理解原因即投入使用。在未启用DNS的机器上表现不明显。在启用DNS的机器上出现诡异故障。

总结:
1、在机器参数检查无明显异常的情况下应该主动思考是否是编码逻辑问题。
2、问题的原因只有一个
3、 在公司内部统一远程调用方式势在必行。如果使用Dubbo或者DSF 等Rpc方案实现的话,永远不会掉这坑里。

标准化改变世界,不要迷恋手写代码。
送上一本书:


1111510297159_.pic.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 10,219评论 0 11
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,430评论 11 349
  • iPhone的标准推荐是CFNetwork 库编程,其封装好的开源库是 cocoa AsyncSocket库,用它...
    Ethan_Struggle阅读 6,684评论 2 12
  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 11,499评论 0 6