zoukankan      html  css  js  c++  java
  • Dubbo 常见错误及解决方法

    地址找不到:No provider available

    (1)Provider 服务没启动,或者注册中心(比如 ZooKeeper,Nacos,Consul)宕机了

    (2)Dubbo 的服务配置有误差,必须保证服务名,组别(默认是 Dubbo ),version 三者都正确

    (3)访问的环境有误:通常我们会有开发环境、测试环境、线上生产环境等多套环境。有时候发布的服务到了测试环境,而访问调用时却走了开发环境。

    调用超时:client-side timeout

    (1)服务端确实处理比较慢,无法在指定的时间返回结果,调用端就自动返回一个超时的异常响应来结束此次调用。

    (2)服务端如果响应的比较快,但当客户端 Load 很高,负载压力很大的时候,会因为客户端请求发不出去、响应卡在 TCP Buffer 等问题,造成超时。因为客户端接收到服务端发来的数据或者请求服务端的数据,都会在系统层面排队,如果系统负载比较高,在内核态的时间占比就会加长,从而造成客户端获取到值时已经超时。

    (3)通常是业务处理太慢,可在服务提供方机器上执行:jstack [PID] > jstack.log 分析线程都卡在哪个方法调用上,这里就是慢的原因。如果不能调优性能,请调高 timeout 阈值。

    服务端的线程资源耗尽:Thread pool is EXHAUSTED   {[Dubbo 服务端的业务线程数是 200 个,如果多个并发请求量超过了 200,就会拒绝新的请求,抛出此错误。]}

    • 调整 Provider 端的 dubbo.provider.threads 参数的大小,调大一些即可。
    • 调整 Consumer 端的 dubbo.consumer.actives 参数的大小,调小一些即可。
    • 增加 Provider 服务的数量,分担压力。

    Hessian 序列化失败:HessianRuntimeException

    (1)检查服务方法的传入传出参数是否实现 Serializable 接口。

    (2)检查服务方法的传入传出参数是否继承了 Number、Date、ArrayList、HashMap 等 Hessian 特殊化处理的类。

    启动时 Configuration problem: Unable to locate Spring NamespaceHandler for XML schema

    表示 Spring 找不到 <dubbo:...> 配置的解析处理器。通常是 Dubbo 的 jar 包没有被引入,请添加对 Dubbo 的依赖;或者是 ClassLoader 隔离,查看是否有使用 OSGI 或其它热加载机制。

  • 相关阅读:
    LeetCode 209. 长度最小的子数组(Minimum Size Subarray Sum)
    LeetCode 快乐数(Happy Number)
    Deep & Cross Network总结
    CTR预估之LR与GBDT融合
    近似最近邻算法-annoy解析
    FM与FFM深入解析
    LeetCode 222. 完全二叉树的节点个数(Count Complete Tree Nodes)
    js 时间与时间戳的转换
    table 样式美化
    c# string 和 byte[]数组之间转换
  • 原文地址:https://www.cnblogs.com/KL2016/p/15788184.html
Copyright © 2011-2022 走看看