当前位置: 首页 > news >正文

SpringBoot+Dubbo+zookeeper 急速入门案例

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

第一步:创建一个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: dubbo
    port: 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 {

    @Override
    public 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学习包传送门

相关文章:

  • Python爬虫实战:获取笔趣阁图书信息,并做数据分析
  • grep如何排除多个目录?
  • 网易易盾接入DeepSeek,数字内容安全“智”理能力全面升级
  • 2-使用wifidog实现portal
  • Java进阶篇之NIO基础
  • MyBatis常见知识点
  • 荣耀手机Magic3系列、Magic4系列、Magic5系列、Magic6系列、Magic7系列详情对比以及最新二手价格预测
  • vue elementui select下拉库组件鼠标移出时隐藏下拉框
  • C++ 常用的设计模式
  • 实时云渲染:驱动XR技术产业化腾飞的核心引擎
  • C语言中常见关键字(static,extern)
  • <论文>DeepSeek-R1:通过强化学习激励大语言模型的推理能力(深度思考)
  • TCP的拥塞控制
  • Postman如何汉化(保姆级教程)
  • Web渗透测试自学习资料超级大全 流程资料文档 涵盖OWASP Top Ten 漏洞 持续更新 ............
  • (Windows | Linux)ssh访问服务器报错:no matching key exchange method found
  • #渗透测试#批量漏洞挖掘#Crocus系统—Download 文件读取
  • Unity崩溃和ANR排查
  • 【个人开发】deepseed+Llama-factory 本地数据多卡Lora微调
  • 《aarch64汇编从入门到精通》-204页PPT+实验
  • 网络彩票的网站怎么做/怎么推广自己的公司
  • 网站建设公司管理流程/小程序开发需要哪些技术
  • 苏州 规划建设局网站/怎么制作小程序
  • 湛江网站建设公司/seo到底是做什么的
  • 网站建设滕州信息港/seo自媒体运营技巧
  • 郑州网站制作公司/app推广全国代理加盟