案例采用环境
zookeeper 3.7.0 dobbo-admin springboot:2.3.2.RELEASE
一、本地zookeeper注册中心
采用本地的原因是通过docker pull下来的zookeeper个人不会使用,通过idea连接一直是没办法连接上的,通过docker logs查看日志信息,发现很多拒绝连接的情况,但是通过本地使用ZooInspector却能连接上,但是用idea本地连接没办法顺利连接,目前没有排错出来,后续如果有解决会放出解决方法,也看看有没有大神遇到同样的问题请教一下。
步骤:
1.首先启动本地zookeeper服务中心,文件夹路径的bin启动zkServer.cmd
二、linux下使用的dubbo-admin
问题:一开始我是使用docker运行zookeeper与dubbo-admin,然后dubbo-admin一直连接不上zookeeper,通过日志查看发现dubbo-admin一直在连接本地127.0.0.1:2181,然而每一个容器其实就是一个独立的虚拟机,查看本机自己的2181端口是没办法发现zookeeper,我采取的方案是直接输入参数进行ip配置说明:admin.registry.address、admin.config-center、admin.metadata 参数通过github查看dubbo-admin-server下的application.yml里面可以看见这三个配置参数
步骤:
1.打开虚拟机进行docker操作(一定要先启动zookeeper后才使用dubbo-admin)
#拉取镜像
docker pull apache/dubbo-admin
#运行镜像
#{zookeeper_ip}:${zookeeper_port}输入自己服务所在的ip与端口 如:192.168.1.1:2181
#映射到虚拟机的9000端口
docker docker run -p 9000:8080 -d --name dubbo-admin
-e "admin.registry.address=zookeeper://{zookeeper_ip}:{zookeeper_port}"
-e "admin.config-center=zookeeper://{zookeeper_ip}:{zookeeper_port}"
-e "admin.metadata-report.address=zookeeper://{zookeeper_ip}:{zookeeper_port}" apache/dubbo-admin
#查看运行状况
docker ps
结果:访问虚拟机ip:9000
三、使用idea编写程序
1、文件结构
| common | 放置domain、util等共同工具 |
| dubbo-api | 需要暴露的服务接口 |
| dubbo-donsumer | 消费者,测试远程服务接口 |
| dubbo-provider | 服务提供者 |
2、pom依赖说明
父pom
4.0.0 pom service dubbo-api common com.fine Spring-boot-dubbo-zookeeper-test020.0.1-SNAPSHOT Spring-boot-dubbo-zookeeper-test02 springboot整合dubbo与zookeeper方案测试 1.8 2.3.2.RELEASE 2.7.8 2.7.8 org.springframework.boot spring-boot-dependencies${spring-boot.version} pom import org.apache.dubbo dubbo-dependencies-bom${dubbo.version} pom import org.apache.dubbo dubbo-dependencies-zookeeper${dubbo-zookeeper.version} pom org.apache.dubbo dubbo${dubbo.version} org.springframework springjavax.servlet servlet-apilog4j log4jorg.springframework.boot spring-boot-maven-pluginapache.snapshots.https Apache Development Snapshot Repository https://repository.apache.org/content/repositories/snapshots false true
service模块的pom(对于服务进行统一管理)
Spring-boot-dubbo-zookeeper-test02 com.fine 0.0.1-SNAPSHOT 4.0.0 servicepom dubbo-provider dubbo-consumer 8 8 org.springframework.boot spring-boot-starter-testtest org.springframework.boot spring-boot-starter-weborg.apache.dubbo dubbo-spring-boot-starter2.7.8 org.apache.dubbo dubbo-dependencies-zookeeperpom com.fine common0.0.1-SNAPSHOT com.fine dubbo-api0.0.1-SNAPSHOT
3、配置
provider配置(application.yml)
spring:
application:
name: dubbo-provider
dubbo:
#服务所在包
scan:
base-packages: com.fine.dubbo.api
#dubbo协议
protocol:
name: dubbo
port: -1
#dubbo注册中心
registry:
# client: curator
address: 127.0.0.1:2181
protocol: zookeeper
application:
name: dubbo-provider
server:
port: 11000
consumer配置
spring:
application:
name: dubbo-consumer
server:
port: 12000
dubbo:
registry:
protocol: zookeeper
address: 127.0.0.1:2181
4、代码实现
api模块
provider模块
comsuner模块
controllerservice
4、启动服务
查看dubbo-admin的监控信息
测试访问



