Docker+Spring+Dubbo+ZooKeeper完成服务化RPC实验

本文通过Docker搭建Zookeeper和Dubbo Admin,利用Spring开发服务提供者和消费者,实现服务注册、负载均衡策略调整,并在多个服务实例中演示consistenthash策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识储备

或许继续阅读前,你需要了解下什么是rpc,什么是dubbo,什么是zookeeper,什么是docker。

不懂什么是spring和java开发?那就不要继续了!

实验目标

1、启动一个docker容器挂载zookeeper,提供服务注册与发现
2、启动一个docker tomcat容器部署dubbo admin管理app,用来管理服务提供者、消费者以及负载均衡等
3、开发一个简单的服务并启动三次(端口和输出有差),注册至zookeeper
4、开发一个简单的服务消费者来消费服务,并体验不同的负载均衡策略

架构规划

这里写图片描述

启动zookeeper服务器

docker pull zookeeper:3.4.10
docker run --name zoo-server --restart always -p 2181:2181 -d zookeeper:3.4.10

务必开启端口映射。将2181用宿主机暴露,这样我们的开发和测试环境才能向其注册服务,EXPOSE 2181 2888 3888 (the zookeeper client port, follower port, election port respectively)

部署并启动dubbo admin

下载dubbo源码

下载的是源码,下载后解压,进入dubbo-admin目录执行
mvn package 进行打包成二进制war包(见target目录),上传到你的docker宿主机上

我的docker宿主机存放该war的路径为:/root/dockerdata

到宿主机上还需要解压缩war包,改改配置文件

cd /root/dockerdata
unzip dubbo-admin-2.5.5.war -d ./dubbo-admin/ROOT
cd dubbo-admin/ROOT/WEB-INF/
vi dubbo.properties

内容先设定为:

dubbo.registry.address=zookeeper://zoo-server:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

其中zoo-server为启动的zookeeper的主机名

启动tomcat容器并映射dubbo-admin-webapp至tomcat的webapps/ROOT

docker run --name dubbo-admin -p 8080:8080 -v /root/dockerdata/dubbo-admin/:/usr/local/tomcat/webapps --link zoo-server:zoo-server -d tomcat:8.5-jre8

然后访问http://宿主ip:8080会看到登录界面
用户名密码都是root,登录进去能看到这样的界面:

这里写图片描述

Java工程规划

这里写图片描述

一共四个类,两个spring容器配置文件。

服务的开发

maven依赖

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>dubbo</artifactId>
  <version>${dubbo.version}</version>
</dependency>
<dependency>
  <groupId>org.apache.zookeeper</groupId>
  <artifactId>zookeeper</artifactId>
  <version>${zookeeper.version}</version>
</dependency>
<dependency>
  <groupId>com.github.sgroschupf</groupId>
  <artifactId>zkclient</artifactId>
  <version>${zkclient.versio
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值