`
ncs123
  • 浏览: 101896 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Dubbo之connet timeout问题排查

阅读更多
一 背景
    购物车依赖推荐的dubbo接口,推荐服务每天凌晨3点会批量下线推荐dubbo服务,全量更新商品,更新完以后在执行上线操作,每天凌晨3点10分左右,购物车工程都会出现5000左右的connection timeout error。正常依赖的dubbo服务工程在启动的时候,消费端会经常出现connection timeout error。





二 问题排查
    遇到问题之后,sa,中间件开发,推荐开发,购物车开发等拉群排查问题,分析影响面。
    dubbo源码分析


总结:推荐服务上线之后,消费端收到zookeeper通知,会主动拉取推荐dubbo服务的URL信息。消费端拿到URL信息后,如果connections不配置,则共享连接,否则每服务每连接,然后将该服务URL和clinets列表封装成一个DubboInvoker对象。如果connection timeout下次会重试。

   哨兵监控分析



    我们发现在connection timeout error出现的时候,推荐服务器TcpExtListenOverflows,TcpExtListenDrops指标异常。

    TcpExtListenDrops(监听队列连接丢弃数)和 TcpExtListenOverflows(监听队列连接溢出数):
  • ListenOverflows:3次握手之后进入Accept Queue,如果Accept Queue满了,队列溢出连接就会丢弃,TcpExtListenOverflows值增加1;
  • ListenDrops:包含上面的情况,也就是说当出现ListenOverflows时,它也会增加1;除此之外,当内存不够无法为新的连接分配socket相关的数据结构时,也会增加1,当然还有别的异常情况下会增加1。

    Accept Queue 的队列长度是由程序的backlog和系统参数net.core.somaxconn共同设置,当backlog的值大于系统设置的net.core.somaxconn时则取net.core.somaxconn的值,否则取程序设置的backlog值。

总结:net.core.somaxconn默认值是128,dubbo backlog目前1024, min(net.core.somaxconn, backlog) = 128。推荐一个服务的提供者的消费者就由1600多,推荐服务一上线,消费者都是第一时间去建立连接,导致Accept Queue溢出。
参考:SYN packet handling in the wild

三 解决问题
    问题已经分析完成,解决的思路:
  1. 增加云主机net.core.somaxconn值和dubbo backlog值。
  2. 修改dubbo源码,服务提供者一上线,消费者延迟随机时间之后去建立连接。

    目前所有云主机同步参数net.core.somaxconn调整到2048,dubbo backlog默认值还是1024,需要压测确定具体值,connection timeout error已经由原先的6000降低到200,connection timeout之后会重试连接,不会影响业务功能。
  • 大小: 129.5 KB
  • 大小: 225.3 KB
  • 大小: 37.3 KB
  • 大小: 56.7 KB
  • 大小: 111.2 KB
分享到:
评论

相关推荐

    springboot+dubbo timeout retries 验证

    springboot+dubbo timeout retries 验证 原文地址 https://blog.csdn.net/u013151053/article/details/116949588

    当DUBBO遇上Arthas-排查问题的实践.pdf

    ### 当DUBBO遇上Arthas-排查问题的实践 #### 概述 在现代微服务架构中,Dubbo作为一款高性能、轻量级的开源RPC框架,被广泛应用于服务治理领域。然而,在复杂的生产环境中,不可避免地会遇到各种各样的问题。此时...

    dubbo资源 dubbo-admin dubbo demo

    此外,还可以通过Dubbo-admin进行故障排查,查看调用链路,分析性能瓶颈。 3. **Dubbo-demo**: 示例项目通常会展示Dubbo的基本用法,例如如何创建服务提供者和服务消费者,如何配置服务接口和实现,如何进行服务...

    Dubbo之《尚硅谷》学习笔记.md

    Dubbo之《尚硅谷》学习笔记

    Dubbo无法访问远程Zookeeper已注册服务的问题解决方案

    <dubbo:registry address="zookeeper://172.16.61.101:2181" timeout="500000" group="JhdGroup" id="myjhd_id"/> <!-- 暴露出去的接口--> <bean id="dubboDemoFacade" class="com.dubbo.demo.facade.impl....

    记一次Dubbo超时&CPU高负载问题排查

    记一次Dubbo超时&CPU高负载问题排查 1.问题背景 最近经常有同事反馈我们灰度环境老的交易系统,这里简称trade,dubbo消费者调用其他服务超时,因为该项目维护人员众多,加上灰度环境发布较多,一直没有排查,然后...

    dubbo admin jdk1.8

    【标题】"dubbo admin jdk1.8" 指的是使用Java开发工具包(JDK)1.8版本运行的Dubbo管理控制台。Dubbo是阿里巴巴开源的一个高...同时,了解如何正确配置和使用Dubbo Admin,有助于提升微服务的运维效率和问题排查能力。

    incubator-dubbo-dubbo-2.6.1

    【标题】"incubator-dubbo-dubbo-2.6.1" 是一个Apache Incubator项目Dubbo的特定版本,这里的2.6.1表示该版本是Dubbo的稳定分支之一。 【描述】提到的"incubator-dubbo-dubbo-2.6.1"表明这是Apache孵化器中的Dubbo...

    dubbo-dubbo-2.7.3.rar

    dubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo...

    dubbo-admin的下载

    6. **故障排查**:如果在下载、安装或运行过程中遇到问题,可以查阅Dubbo的官方文档,社区论坛,或者在线搜索解决方案。社区通常会提供很多关于常见问题的解答和最佳实践。 总的来说,成功下载和运行dubbo-admin...

    dubbo监控dubbo-monitor

    Dubbo-Admin更注重服务的日常管理和配置,而Dubbo-Monitor则专注于性能监控和故障排查。 **Dubbo-Monitor的核心功能** 1. **服务监控**:Dubbo-Monitor可以显示服务的调用次数、调用成功率、平均响应时间等关键...

    dubbo示例代码dubbo-sample

    【Dubbo 示例代码详解】 Dubbo 是阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,它主要提供了RPC(远程过程调用)服务,并且包含了服务注册与发现、负载均衡、容错处理、监控等全面的服务治理功能。本示例...

    dubbo2.5.6.zip

    《Dubbo 2.5.6与Java 1.8的兼容性问题解析》 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的服务治理框架,广泛应用于分布式系统中。而Java,作为服务端开发的基石,其版本选择直接影响到框架的运行效果。本篇文章...

    incubator-dubbo-dubbo-2.5.8

    5. **故障排查**:当系统出现异常时,dubbo-admin可以帮助快速定位问题,通过日志查看、调用链跟踪等功能进行故障排查。 总的来说,"incubator-dubbo-dubbo-2.5.8" 提供了一个完整的解决方案,涵盖了分布式服务的...

    dubbo-admin 2.6 dubbo monitor

    【标题】"dubbo-admin 2.6 dubbo monitor"涉及的是Dubbo框架的一个关键组件——Dubbo Admin,这是用于监控服务治理的2.6版本。这个组件是Dubbo生态系统中的重要部分,它提供了可视化界面,帮助开发者和运维人员监控...

    解决dubbo启动报错的问题

    解决dubbo启动报错,加载失败问题。

    dubbo-admin 管理

    dubbo.consumer.timeout=3000 ``` 4. **其他高级配置**:还可以根据实际需求调整日志级别、监控中心地址、线程池大小等参数。 正确配置完成后,只需启动Dubbo-Admin,便可以在Web界面中看到注册中心中的所有服务...

    dubbo接口测试调试工具

    前段时间排查某问题的时候,想要快速知道某些dubbo接口(三无)的响应结果,但不想启动项目(因为这些项目不是你负责的,不会部署而且超级笨重),也不想新建一个dubbo客户端项目(占地方),也不想开telnet客户端...

    下载 dubbo.xsd

    在开发Java应用,尤其是使用Apache Dubbo作为服务治理框架时,可能会遇到Eclipse IDE报找不到`dubbo.xsd`的问题。`dubbo.xsd`是Dubbo服务配置的XML schema定义文件,它定义了Dubbo配置文件的结构和规则。当Eclipse在...

    dubbo的.xsd文件分享

    接着,`dubbo.xsd`中的`<dubbo:reference>`元素则用于声明服务消费者,它包含了与`<dubbo:service>`类似的属性,但更多的是消费者端的配置,如timeout、retries、loadbalance等,这些参数直接影响到服务调用的性能和...

Global site tag (gtag.js) - Google Analytics