问题截图
在这里插入图片描述
问题分析关键词:
1)BeanCreationException: Error creating bean with name ‘com.alibaba.dubbo.spring.boot.DubboProviderAutoConfiguration’: Invocation of init method failed

2)cause: Zookeeper is not connected yet!

上图发生的原因是,Zookeeper没有链接,所以导致无法加载DubboProviderAutoConfiguration类相关的方法。

问题解决排查
1)Zookeeper 安装
下载地址:https://zookeeper.apache.org/releases.html
这里要注意,从Zookeeper 3.5.9开始,每个版本下面有两个安装包,选择第一个安装。
在这里插入图片描述

在这里插入图片描述
安装步骤:
1)解压安装包 sudo tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz
2)修改安装包名称 sudo mv apache-zookeeper-3.5.9-bin zookeeper
3)cd进入到zookeeper文件目录,创建两个文件夹
data用来存储数据,log用来存放log信息
sudo mkdir data
sudo mkdir log

4)cd进入到zookeeper下的conf目录 ,sudo mv zoo_sample.cfg
改为zoo.cfg,目的为了方便修改,命名随意。
5)修改zoo.cfg文件配置 sudo vim zoo.cfg ,添加如下两个配置
dataDir=/文件路径/zookeeper/data
dataLogDir=/文件路径/zookeeper/logo

6)启动 sudo ./zkServer.sh start
7)查看状态 sudo ./zkServer.sh status
8)停止 sudo ./zkServer.sh stop

zookeeper安装完成end

2)排查provider提供者项目
properties配置文件
在这里插入图片描述
pom配置文件
在这里插入图片描述
server实现类
这里的@Service必须是com.alibaba.dubbo.config.annotation.Service包下面的类,而不是org.springframework.stereotype.Service下面的@Service,这个特别注意。
在这里插入图片描述
项目启动类
添加上dubbo的扫描类@EnableDubboConfiguration
在这里插入图片描述
结合以上信息,我们一个一个排查

1)首先 cause: Zookeeper is not connected yet!这个问题,表示Zookeeper没有连接上,首先查看一下Zookeeper状态。
在Zookeeper的bin目录下打开终端,输入 sudo ./zkServer.sh status查看Zookeeper状态信息。
在这里插入图片描述
可以看到我们的Zookeeper是开启状态
端口号port:2181
地址address:localhost

注意项目中的properties文件中的spring.dubbo.registry 必须和Zookeeper的port和address对应上。

在终端输入ifconfig查看你的本机地址信息
在这里插入图片描述
到这里可以发现我在properties配置的是192.168.60.20:2181,明显对应不上,修改成192.168.60.214再此运行。
在这里插入图片描述
运行成功!!!!!
在这里插入图片描述
这是修改后的配置,切记注册地址一定要和你的zookeeper配置地址对应上。你可以使用ipv4地址127.0.0.1或者本机ipv6地址,也就是我这里的192.168.60.214。两个都是指向本机地址。

排查思路
1)保证Zookeeper运行状态是start
2)provider注册地址对应Zookeeper的localhost和port
3)@Service引用包是com.alibaba.dubbo.config.annotation.Service
4)启动类添加@EnableDubboConfiguration扫描类

end

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐