Windows下Dubbo+Zookeeper实现分布式部署教程
目录
- 前言
- 一、环境准备
- 二、使用步骤
- 1. 创建项目
- 2. 引入依赖
- 3. 在接口模块定义接口
- 4. 在服务提供模块定义服务实现
- 5. 在服务消费模块进行服务调用
- 6. 启动provider&consumer
- 7. 调用
- 总结
前言
使用Dubbo+Zookeeper实现分布式服务部署,环境提前准备好,并不局限于当前版本,只是更高版本的依赖注解等有些区别,整体实现思路不变。
提示:以下是本篇文章正文内容,下面案例可供参考
一、环境准备
本地环境如下:
- 1. JDK1.8
- 2. Maven3.6.3
- 3. IDE:IDEA2024
- 4. Tomcat8.5.99
- 5. Zookeeper3.6.4
- 6. Dubbo2.5.10
二、使用步骤
1. 创建项目
项目结构如下:

dubbo-common:父项目
- dubbo-consumer:服务消费端
- dubbo-interface:接口
- dubbo-provider:服务提供端
2. 引入依赖
服务消费端和服务提供端需要引入接口模块:
<dependency>
<groupId>com.xxxxxx</groupId>
<artifactId>dubbo-interface</artifactId>
<version>0.0.1-SNAPSHOT</version>
</depjsendency>
以及zookeeper和dubbo相关依赖:
<!-- Dubbo 依赖 -->
<dependency>
<groupId> com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.10</version>
<type>jar</type>
</dependency>
<!-- Zookeeper 客户端依赖 -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>5.2.0</version>
</dependency>
<!-- 添加 zkclient 依赖 -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<!-- 显式指定ZooKeeper版本 -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.6.4</version>
</dependency>
http://www.devze.com<!-- Spring Context 依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.8</version>
</dependency>
3. 在接口模块定义接口
public interface UserService {
/**
* 获取用户名
* @param userName
* @return
*/
String g编程客栈etUserName(String userName);
}
4. 在服务提供模块定义服务实现
(注意实现的为接口模块的Service)
@Service
public class UserServiceImpl implements UserService {
/**
* 获取用户名
* @param userName
* @return
*/
@Override
public String getUserName(String userName) {
return "hello" + userName;
}
}
其中@Service注解为
import com.alibaba.dubbo.config.annotation.Service;
同时增加dubbo的配置
# Dubbo 配置 dubbo.application.name=dubbo-provider dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.protocol.name=dubbo dubbo.protocol.port=20880
启动类加注解
@EnableDubbo
5. 在服务消费模块进行服务调用
(注意注入的为接口模块的Service)
@RestController
public class UserController {
@Reference
private UserService userService;
@GetMapping("/getUserName")
public String getUserName(@RequestParam String userName) {
System.out.println("用户名:" + userName);
return userService.getUserName(userName);
}
}
其中@Reference注解为
import com.alibaba.dubbo.config.annotation.Reference;
同样添加配置信息和注解,配置的name改为dubbo-consumer
6. 启动provider&consumer
Dubbo查看服务

7. 调用
http://localhost:8086/ge编程客栈tUserName?userName="张三"

总结
以上就是今天要讲的内容,本文简单介绍了如何使用Dubbo+编程客栈Zookeeper实现简单的服务调用,后续可以将服务部署在不同的服务器上,实现真正的分布式部署。
第一次实现想了想还是记录一下,给同样小白的朋友参考。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
加载中,请稍侯......
精彩评论