线上搭建dubbo出现的一些问题

      最近公司的项目上线时,遇见了一些问题,小编在这里总结了一下,和大家分享一下。也希望对大家有所帮助,这也是小编写的第一篇博客,若果有什么问题,还请大家多多指教。

      公司的项目是使用Dubbo。所有的服务提供者都打成jar。然后布置到线上。而消费者在调用提供者的时候报错。

        Forbid consumer 172.17.234.233 access service com.hlf.shop.i.RecommendService from registry xxx.xxx.xxx.xxxx:2181 use dubbo version 2.5.3, Please check registry access list (whitelist/blacklist).

    因为当时也没想篇博客,也没保存太多的错误信息,大家先凑活一下哈。

      从字面来看说是禁止消费者,并让检查白名单黑名单。小编当时也是从这方向排查问题。后来发现,并不是权限的问题。而是小编的服务发布者的jar包有问题,服务没有注册。所以消费者找不到服务,产生这个错误。

     小编将服务重新打包,然后启动消费者调用服务,出现如下错误

Caused by: com.alibaba.dubbo.remoting.RemotingException: message can not send, because channel is closed . url:dubbo://192.168.1.185:21954/com.tw.ei.business.agent.service.ReqBuinessAgentService?anyhost=true&application=consumer-engine&check=false&codec=dubbo&default.timeout=120000&dubbo=2.4.10&heartbeat=60000&interface=com.tw.ei.business.agent.service.ReqBuinessAgentService&methods=execute&pid=27587&retries=0&revision=reqappservice&side=consumer×tamp=1399973540550&version=1.0.0

  这个错误是说通道关闭,消息不能发送,但是小编的服务已经注册了,还是出错。小编在网上查了好久,各种解决方案都用过,可是还未解决。小编用的是sh脚本运行的jar包,后来小编直接用java -jar 的命令直接运行jar包,然后消费者就可以调通服务.....然后小编有用了脚本运行,服务也可以使用。

   小编的解决方法就是用命令运行一下,然后再用脚本运行。便可正常运行,不会出现报错情况。

  至于到底是因为什么原因,小编还没找到,如果哪位大佬知道原因。还请不吝赐教。

   好了,就写到这里了。小编第一次写博客,写的不好,还请大家多多见谅!!!!!!

你可能感兴趣的:(技术)