SpringBoot+Dubbo+zookeeper 急速入门案例

server/2025/2/11 3:16:48/

项目目录结构:
在这里插入图片描述

第一步:创建一个SpringBoot项目,这里选择Maven项目或者Spring Initializer都可以,这里创建了一个Maven项目(SpringBoot-Dubbo),pom.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.ly</groupId><artifactId>SpringBoot-Dubbo</artifactId><packaging>pom</packaging><version>0.0.1-SNAPSHOT</version><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.3.0.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies></project>

更多Java学习指南以及最新项目场景题,需要的宝子
Java学习包传送门

第二步:添加Module,以dubbo-provider为例
在这里插入图片描述
可以使用Maven创建或者使用Spring Initializr:
在这里插入图片描述
在这里插入图片描述

第三步:服务提供方dubbo-provider相关配置
在这里插入图片描述

在pom.xml文件中添加dubbo使用依赖,以及zookeeper的依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>SpringBoot-Dubbo</artifactId><groupId>com.ly</groupId><version>0.0.1-SNAPSHOT</version></parent><groupId>com.qunhongtech</groupId><artifactId>dubbo-provider</artifactId><version>0.0.1-SNAPSHOT</version><name>dubbo-customer</name><modelVersion>4.0.0</modelVersion><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.3.0.RELEASE</version></dependency><!--dubbo依赖--><dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.2.0</version></dependency><!--zookeeper客户端依赖--><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.13</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions></dependency></dependencies>
</project>

修改配置文件:application.yml

server:port: 8081             #Tomcat端口号
dubbo:application:name: dubbo-provider #应用名称protocol:name: dubboport: 20880          #dubbo服务暴漏的端口号registry:address: zookeeper://127.0.0.1:2181  #zookeeper服务的地址以及端口号

第四步:服务消费方dubbo-customer相关配置
在这里插入图片描述
在pom.xml文件中添加dubbo使用依赖,以及zookeeper的依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>SpringBoot-Dubbo</artifactId><groupId>com.ly</groupId><version>0.0.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.ly</groupId><artifactId>dubbo-customer</artifactId><version>0.0.1-SNAPSHOT</version><name>dubbo-customer</name><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.2.0</version></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.13</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions></dependency></dependencies>
</project>

修改配置文件:application.yml

server:port: 8082             #Tomcat端口号
dubbo:application:name: dubbo-customer   #应用名称registry:address: zookeeper://127.0.0.1:2181  #zookeeper服务的地址以及端口号

第五步:在dubbo-api中新建接口,并在dubbo-provider中实现
在这里插入图片描述

dubbo-api中创建一个接口:HelloService,使用时需要在dubbo-provider以及dubbo-customer
中添加依赖:

public interface HelloService {String hello();}

dubbo-provider中实现HelloService接口:
在这里插入图片描述
创建接口实现类HelloServiceImpl用来实现HelloService接口:实现代码如下,注意这里使用的注解@Service不是用spring的service注解,而是使用的dubbo的注解:import com.alibaba.dubbo.config.annotation.Service;

@Service //发布服务
public class HelloServiceImpl implements HelloService {@Overridepublic String hello() {return "Hello World...";}
}

并在启动器DubboProviderApplication中添加注解:@EnableDubbo
在这里插入图片描述
第六步:试着在dubbo-customer中远程调用HelloService接口:
在这里插入图片描述
新建一个HelloController类,代码如下,想要引入远程服务时需要使用dubbo的Reference注解:

@RestController
public class HelloController {@Reference //引用服务private HelloService helloService;@GetMapping("/hello")private String hello(){System.out.println("Hello World...");return helloService.hello();}}

测试代码,先启动服务提供方:dubbo-provider,发生错误,因为我们还没有启动zookeeper
在这里插入图片描述

下载安装zookeeper,打开连接选择合适的版本直接安装即可:https://zookeeper.apache.org/releases.html

在这里插入图片描述
在这里插入图片描述
下载下来的压缩包可以在linux或windows中使用,这里以windows为例:
在这里插入图片描述
解压压缩包,找到bin目录并打开:在这里插入图片描述
目录如下,找到zkServer.cmd,双击启动即可:

在这里插入图片描述
运行结果如下:
在这里插入图片描述

再次依次启动:服务提供发:dubbo-provider服务消费方:dubbo-customer,打开浏览器进行测试,结果如下:
在这里插入图片描述

更多Java学习指南以及最新项目场景题,需要的宝子
Java学习包传送门


http://www.ppmy.cn/server/166648.html

相关文章

【玩转 Postman 接口测试与开发2_019】第15章:利用 Postman 初探 API 性能测试(含实战截图)

《API Testing and Development with Postman》最新第二版封面 文章目录 第十五章 API 接口性能测试1 性能负载的类型2 Postman 负载配置3 Postman 性能测试实战3.1 Fixed 型负载下的性能测试3.2 基于数据驱动的 Postman 接口性能测试 4 性能测试的注意事项 写在前面 终于来到了…

JMeter通过BeanShell如何对CSV文件的指定列追加数据

在 JMeter 中实现向 CSV 文件的 指定列追加数据&#xff0c;需根据场景选择不同方法。以下是两种典型场景的实现方案&#xff1a; 场景 1&#xff1a;生成新行时填充指定列的数据 若每次请求生成一行新数据&#xff0c;并在特定列填充动态值&#xff08;如第三列&#xff09;&…

2025年02月05日Github流行趋势

项目名称&#xff1a;OCRmyPDF 项目地址url&#xff1a;https://github.com/ocrmypdf/OCRmyPDF项目语言&#xff1a;Python历史star数&#xff1a;15872今日star数&#xff1a;157项目维护者&#xff1a;jbarlow83, fritz-hh, apps/dependabot, mawi12345, mara004项目简介&…

网络安全技术架构 网络安全结构体系图

1.基础研究 1.1密码理论 1.2数据加密 1.3消息摘要 1.4数字签名 1.5密钥管理 信息隐藏 2.应用研究 2.1安全技术 2.2防火墙技术 2.3入侵检测 2.4漏洞扫描 2.5防病毒技术 3.管理研究 3.1安全策略 3.2安全标准 3.3安…

鸿蒙音视频播放器:libwlmedia

libwlmedia 跨平台播放器wlmedia现在已经支持了鸿蒙(Harmony)平台了&#xff0c;SDK插件地址&#xff1a;libwlmedia 一、接入SDK 1.1 导入SDK ohpm i ywl5320/libwlmedia1.2 添加权限&#xff08;可选&#xff09; 如果需要播放网络视频&#xff0c;需要添加网络权限 #m…

蓝桥杯 Java 之输入输出

一、输入输出方式&#xff1a;Scanner vs BufferedReader Scanner类 简介&#xff1a;Scanner 是 Java 中一个非常方便的用于读取用户输入的类&#xff0c;它可以从多种输入源&#xff08;如标准输入、文件等&#xff09;读取基本数据类型和字符串。 1. Scanner的细节与使用…

pgBackRest 是专为 PostgreSQL 设计的开源备份与恢复工具,以其高性能、可靠性和灵活性著称

pgBackRest 是专为 PostgreSQL 设计的开源备份与恢复工具&#xff0c;以其高性能、可靠性和灵活性著称。它支持 全量备份、增量备份、并行备份/恢复 和 加密 等特性&#xff0c;适用于大规模数据库和关键业务场景。以下是其核心功能及操作指南&#xff1a; 一、pgBackRest 核心…

清影2.0(AI视频生成)技术浅析(一)

清影2.0是由某科技公司推出的一款先进的AI视频生成平台,旨在通过人工智能技术实现从文本到视频的自动化创作。该平台结合了自然语言处理(NLP)、计算机视觉(CV)、音频处理以及深度学习等多个领域的最新技术,能够根据用户输入的文本描述自动生成高质量的视频内容。 1.平台…