Windows下Dubbo+Zookeeper實現(xiàn)分布式部署教程
前言
使用Dubbo+Zookeeper實現(xiàn)分布式服務部署,環(huán)境提前準備好,并不局限于當前版本,只是更高版本的依賴注解等有些區(qū)別,整體實現(xiàn)思路不變。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、環(huán)境準備
本地環(huán)境如下:
- 1. JDK1.8
- 2. Maven3.6.3
- 3. IDE:IDEA2024
- 4. Tomcat8.5.99
- 5. Zookeeper3.6.4
- 6. Dubbo2.5.10
二、使用步驟
1. 創(chuàng)建項目
項目結(jié)構(gòu)如下:

dubbo-common:父項目
- dubbo-consumer:服務消費端
- dubbo-interface:接口
- dubbo-provider:服務提供端
2. 引入依賴
服務消費端和服務提供端需要引入接口模塊:
<dependency>
<groupId>com.xxxxxx</groupId>
<artifactId>dubbo-interface</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>以及zookeeper和dubbo相關(guān)依賴:
<!-- 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>
<!-- 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 getUserName(String userName);
}4. 在服務提供模塊定義服務實現(xiàn)
(注意實現(xiàn)的為接口模塊的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. 在服務消費模塊進行服務調(diào)用
(注意注入的為接口模塊的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. 調(diào)用
http://localhost:8086/getUserName?userName="張三"

總結(jié)
以上就是今天要講的內(nèi)容,本文簡單介紹了如何使用Dubbo+Zookeeper實現(xiàn)簡單的服務調(diào)用,后續(xù)可以將服務部署在不同的服務器上,實現(xiàn)真正的分布式部署。
第一次實現(xiàn)想了想還是記錄一下,給同樣小白的朋友參考。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring security與corsFilter沖突的解決方案
這篇文章主要介紹了spring security與corsFilter沖突的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
springboot從application.properties中注入list,?map方式
這篇文章主要介紹了springboot從application.properties中注入list,map方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
SpringBoot實現(xiàn)Logback輸出日志到Kafka方式
本文介紹了如何在SpringBoot應用中通過自定義Appender實現(xiàn)Logback輸出日志到Kafka,包括配置maven依賴、Kafka工具類和logback.xml配置2025-02-02
去掉 IDEA 中 mybatis配置文件的局部背景顏色(圖解)
這篇文章通過圖文并茂的形式給大家介紹了去掉IntelliJ IDEA 中 mybatis配置文件的局部背景顏色及mybatis 對應的 xml 文件警告的方法圖解,需要的朋友可以參考下2018-09-09
Spring?IOC中對象的創(chuàng)建、策略及銷毀時機和生命周期詳解
這篇文章主要介紹了Spring?IOC中對象的創(chuàng)建、策略及銷毀時機和生命周期詳解,Spring默認使用類的空參構(gòu)造方法創(chuàng)建bean,假如類沒有空參構(gòu)造方法,將無法完成bean的創(chuàng)建,需要的朋友可以參考下2023-08-08

