我是靠谱客的博主 朴素冥王星,最近开发中收集的这篇文章主要介绍dubbo报错总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

作为一个dubbo使用新手,有必要总结一些常见的dubbo问题,提升解决问题的套路。


1.dubbo consumer 调用provider报错(1)- No provider available

问题:No provider available from registry xxx from service xxx on consumer xxx may be providers disabled or not registrered。如下图所示:
dubbo报错
原因
根据源码的截图所示(下图),就两个原因:
1)No service provider
2)Service providers are disabled
源码分析
解决办法
1).provider部署分支不正确,部署正确的分支。
2).consumer部署分支的zookeeper地址不正确。


2.dubbo consumer调用provider报错(2)

问题:com.alibaba.dubbo.rpc.RpcException: Rpc cluster invoker for interface xxx on consumer 10.2.4.63 use dubbo version 2.6.0.2 is now destroyed! Can not invoke any more.
问题截图
原因
源码分析
调用链路:invoke()–>checkWhetherDestroyed()
consumer端调用的时候,发现出现实例已经destory,就抛出此异常
怀疑是由于内存不足,dubbo进程触发了spring的destroy()方法,同时就执行到了AbstractClusterInvoker.destroy(),但是此时进程并没有挂掉,所以就出现了可以调用,但是调用失败的情况。

解决方法
1)查看provider服务器是否内存不够,kill掉不相干的进程。
2)重启provider服务。


3.dubbo consumer 调用provider报错(3)- NoSuchMethodException

问题:Caused by: com.alibaba.dubbo.common.bytecode.NoSuchMethodException: Not found method “getSocialResourceByRegionId” in class com.missfresh.product.center.service.impl.SocialResourceServiceImpl.
问题截图
原因
dubbo服务部署的分支里没有相关接口的实现。
解决方法
部署对应的分支。或者是直接部署master。


4.dubbo consumer 调用provider报错(4)- Thread pool is EXHAUSTED!

问题:com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method queryProductSalsPromotionTagList in the service com.missfresh.product.center.service.IProductCategorysService. Tried 1 times of the providers
问题截图
原因:
原因分析
如上图所示,provider服务支持的最大线程数为300。

解决方法
检查程序中并发采用的线程池初始化值,是否合理。最大线程个数不能大于300.

最后

以上就是朴素冥王星为你收集整理的dubbo报错总结的全部内容,希望文章能够帮你解决dubbo报错总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部