1、问题原因
dubbo服务访问不了
2、解决思路
(1)检查服务是否启动
登录对应的服务运行机器,查看进程是否正常运行,或javamulti restart重启一下服务(服务重启具体看环境,dev自测环境,不影响他人工作的情况下可以重启)
(2)检查提供者相关服务是否依赖到相关项目--provider配置文件,或查看zk,看看里面的服务有没有注册上
service接口服务要想作为dubbo服务对外暴露和使用,要先将接口注册到dubbo中,方法类似spring的对象xml注入,要在povider配置文件中加入对应的dubbo service
1、将项目与dubbo绑定
<dubbo:application name ="provider项目名"/>
2、指定zk地址
<dubbo:registy address="zookeeper:// ip+port"/>
3、引入实现服务的项目中spring配置文件
<import resource ="classpath:xx.xml"/>
4、向dubbo注册具体的服务接口,要一个服务一个服务地注入
<dubbo:service id="自定义" ref="服务名1" interface="对应service接口的路径" group="运行环境(开发一般为dev)'.../>
<dubbo:service id="自定义" ref="服务名2" interface="对应service接口的路径" group="'.../>
...
(3)检查消费者是否正确引入jar包并配置好consumer配置文件
- consumer要想使用dubbo服务,首先要绑定dubbo,然后指定zk的地址,以便去zk查询对应的服务在哪,指定想要使用的dubbo服务
- console中导入了api的jar包,但是无需导入service具体实现api的jar包,而是通过dubbo的方式去通过调用api进而调用dubbo上注册的api的具体实现
- 访问过程:consloe(controller)----api----dubbo----service
1、将项目与dubbo绑定
<dubbo:application name ="provider项目名"/>
2、指定zk地址(要和提供者一致)
<dubbo:registy address="zookeeper:// ip+port"/>
3、指出需要使用的dubbo服务
<dubbo:refernce id="自定义" group="运行环境(开发一般为dev)" interface="对应service接口的路径(jar包中api)".../>
参考:
dubbo报错 Please check registry access list (whitelist/blacklist)._悟世君子的博客-优快云博客