No provider available from registry
exception=org.apache.dubbo.rpc.RpcException: No provider available from registry
最新推荐文章于 2024-10-20 17:09:42 发布

芒果_不是水果 于 2021-04-29 08:59:47 发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Dubbo调用找不到服务提供方原因之一查找解决过程总结
问题描述 在测试环境中,服务A为系统主服务,服务B为报表生成服务。两个服务使用Tomcat部署在不同的机器上,服务A通过dubbo调用服务B接口生成报表。
在服务A前端页面点击生成报表按钮后,服务A的log日志报以下错误:

此时,怀疑是zookeeper挂了,成功重启zookeeper后,以用户“sit” 登录Jenkins重新部署报表服务,Jenkins部署日志如下图:

可以看到,报表服务部署失败,因为没有权限。这表明上次启动报表服务的用户非当前用户!
至此,找到了无dubbo服务提供方的原因,即报表服务一直都未启动成功!
此时查看Tomcat的bin目录下的进程文件所属用户,发下该文件由root用户创建。这表明报表服务有root用户启动,当前sit用户因为权限不足,无法使用./shutdown.sh关闭Tomcat服务,也无法重启Tomcat。

解决方法 因没有root权限,所以无法kill 文件CATALINA_PID中的服务进程。因Tomcat在启动时,会生成这个进程文件,因此,重命名原进程PID文件如上图所示为:CATALINA_PID_2。
此时,再使用sit用户重启报表服务,服务启动成功。生成了新的进程文件如下图:

总结
dubbo调用找不到provider的原因有很多,服务未启动成功是最容易发现的一个原因,此时重启服务需要留意所使用的用户是否具备启动权限。
相关知识
Food Allergies: Symptoms, Treatments
鲜花管理系统(javaweb)资源
List of Fungal Infections Medications
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40
【Vue 快速入门】从零开始搭建 VUE + Element UI后台管理系统框架
请问Provider=SQLOLEDB.1;Password=mypass;Persist Security Info=True;User ID=sa;Initial Catalog=databasename;Data Source=servernam
利用基因工程技术大规模消灭害虫
亚马逊美国SUNJOY
全球空气质量监测数据覆盖
Urban Green Infrastructure
网址: No provider available from registry https://m.huajiangbk.com/newsview1240418.html