挺简单的一个Dubbo+zookeeper上手教程,记录一下!
1.下载安装zookeeper
zookeeper下载地址
打开后如图
选择第二个,下载成功后解压,目录如下
bin目录下,双击zkServer.cmd,启动zookeeper服务。如果报错,提示信息是conf目录下zoo.cfg找不到的情况,则复制一份conf目录下zoo_sample.cfg文件,重命名为zoo.cfg即可
如图
2.下载Dubbo-admin
这个主要是一个dubbo的可视化界面,不要也可
dubbo-admin的git地址
下载下来之后目录如下
dubbo-admin 是一个springboot项目,现在将该项目打成jar包.
cmd中执行以下命令,项目同级目录
mvn clean package -Dmaven.test.skip=true
等待漫长时间后(根据网速),会看到success信息。然后可以在项目目录下,target目录下,找到如图jar包
3.测试Dubbo-admin
在生成的jar包同级目录下,执行cmd命令,java -jar
浏览器中输入 localhost:7001 ,账
号密码 root/root ,进入如下页面
4.springboot整合dubbo+zookeeper
新建两个springboot项目,prodiver-server(生产者)和 consumer-server(消费者)
两个项目均引入以下依赖:
<!--导入 dubbo+zookeeper-->
<!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.3</version>
</dependency>
<!--zkclient-->
<!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclient -->
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
<!--引入zookeeper-->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.14</version>
<!--排除这个slf4j-log4f12-->
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
provider-server项目中
配置文件
server.port=8001
# 服务应用名字
dubbo.application.name=provider-server
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#哪些服务要被注册
dubbo.scan.base-packages=com.yyyy.service
service接口
//demo接口
public interface TicketService {
public String getTicket();
}
serviceImpl 实现类
//zookeeper:服务注册与发现
@Service //使用这个注解,可以被扫描到,在项目一启动就自动注册到注册中心
@Component // 使用了Dubbo后,尽量不要使用service注解
public class TicketServiceImpl implements TicketService {
@Override
public String getTicket() {
return "测试Dubbo+zookeeper";
}
}
consumer-server项目中
配置文件
server.port=8002
#消费者去拿服务要暴露自己的名字
dubbo.application.name=consumer-server
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
service类
@Service //放到容器中
public class UserService {
//想拿到provider-server提供的票,要去注册中心拿到服务
@Reference //引用,Pom坐标,或者可以定义路径相同的接口名
TicketService ticketService;
public void bugTicket(){
String ticket = ticketService.getTicket();
System.out.println("在注册中心拿到票=>"+ticket);
}
}
在UserService同级目录下,复制一个provider-server项目中的service接口
如图:
在consumer-server项目中测试调用UserService 方法
@Autowired
UserService userService;
@Test
void contextLoads() {
userService.bugTicket();
}
5.测试结果截图
在debbo-admin页面中的–>服务治理–>应用中可看到如下:
到这差不多就完了,只是想记录下入门过程。有哪里缺漏或者不正确的地方欢迎留言
未经允许,禁止转载!