最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot使用Dubbo的全過程(直連模式)

 更新時間:2026年05月23日 10:27:02   作者:城南蟈蟈  
這篇文章給大家介紹SpringBoot使用Dubbo的全過程(直連模式),本文結合實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧

1.什么是Dubbo

Dubbo 是一款高性能、輕量級的 Java 分布式服務框架(RPC 框架),專門用來做 “微服務之間的遠程調用”。簡單說:A 服務 想調用 B 服務 的方法,像調用本地方法一樣方便,底層就是 Dubbo 幫你做通信。

Registry(注冊中心):注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數(shù)據(jù)給消費者。
Consumer(服務消費者):調用遠程服務的服務消費方,服務消費者在啟動時,向注冊中心訂閱自己所需的服務,服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。
Monitor(監(jiān)控中心):服務消費者和提供者,在內存中累計調用次數(shù)和調用時間,定時每分鐘發(fā)送一次統(tǒng)計數(shù)據(jù)到監(jiān)控中心。
Provider(服務提供者)暴露服務的服務提供方,服務提供者在啟動時,向注冊中心注
冊自己提供的服務。

核心作用:
(1)遠程服務調用(RPC):讓服務之間像調用本地方法一樣調用遠程接口,屏蔽網絡細節(jié)。
(2)服務注冊與發(fā)現(xiàn):服務啟動時把自己注冊到注冊中心(如 Nacos、ZooKeeper),調用方自動發(fā)現(xiàn)可用服務。
(3)負載均衡、容錯、限流:自動把請求分給多臺服務器,某臺掛了自動切換,保證系統(tǒng)高可用。

說明:本文只簡單搭建和使用Dubbo,后續(xù)文章會整合成分布式架構。

本文用的工具:
IDEA版本:2026.1
JDK版本:17
Spring Boot版本:3.x
Dubbo版本:3.3.0

本文先創(chuàng)建父模塊,然后分別創(chuàng)建 生產者消費者

本文項目結構如下:

D:\Project\test\dubbo_demo
│
├── pom.xml                          # 父工程 Maven 配置
│
├── dubbo-api/                       # 接口模塊
│   ├── pom.xml
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   ── com.guo.service/
│       │   │       └── DogService.java
│       │   └── resources/
│       └── test/java/
│
├── dubbo-provider/                  # 服務提供者模塊
│   ├── pom.xml
│   ── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── com.guo/
│       │   │       ├── ProviderApplication.java
│       │   │       └── service/
│       │   │           └── DogServiceImpl.java
│       │   └── resources/
│       │       └── application.yml
│       └── test/java/
│
└── dubbo-consumer/                  # 服務消費者模塊
    ├── pom.xml
    └── src/
        ├── main/
        │   ├── java/
        │   │   └── com.guo/
        │   │       ├── ConsumerApplication.java
        │   │       └── controller/
        │   │           └── DogController.java
        │   └── resources/
        │       └── application.yml
        └── test/java/

2.搭建父模塊

2.1 創(chuàng)建父模塊項目

父模塊本身沒有其他代碼,主要用來管理子模塊(實際上就是一個空Maven項目)。

這里選擇“Java”,構建系統(tǒng)選擇“Maven”,JDK這里選17,然后點擊下面的創(chuàng)建。

創(chuàng)建完畢后,默認界面如下:

父工程沒有其他的代碼,只有一些依賴,所以這里直接把src文件刪除,右擊src文件夾,然后選擇“刪除”

然后,需要修改packaging,打開pom.xml,把下面的內容放到pom.xml中。(這行的意思是表示父工程,負責管理,不負責代碼)

    <packaging>pom</packaging>

2.2 添加公共依賴

因為后面會創(chuàng)建子模塊,子模塊需要依賴,如果子模塊很多,需要填寫的依賴就很多。此時,我們可以在父模塊引入依賴,子模塊沿用父模塊的依賴即可。
打開父工程的pom.xml,然后添加spring boot、dubbo的一些依賴。
另外, 也增加了上面關于版本的定義,比如
<spring-boot.version>3.5.14</spring-boot.version>

然后有三種方式來下載依賴:
第一種:點擊下圖的1位置。
第二種:先點擊下圖的A,再點擊B。
第三種:雙擊下圖綠的的框。

下面的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>
    <groupId>com.guo</groupId>
    <artifactId>dubbo-demo2</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring-boot.version>3.5.14</spring-boot.version>
        <dubbo.version>3.3.0</dubbo.version>
        <jdk.version>17</jdk.version>
    </properties>
    <!-- 依賴管理:子模塊可直接繼承,無需重復引入 -->
    <dependencyManagement>
        <dependencies>
            <!-- Spring Boot 核心依賴 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
                <version>${spring-boot.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <version>${spring-boot.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>${spring-boot.version}</version>
            </dependency>
            <!-- Dubbo 核心依賴 -->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>${dubbo.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <!-- 插件管理,子模塊繼承 -->
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>${spring-boot.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

下載依賴后的參考界面如下:

父模塊無需編寫 Java 代碼,僅負責 依賴版本管理 和 子模塊關聯(lián),后續(xù)子模塊直接繼承父模塊的依賴配置,避免版本沖突。

3.搭建api部分

3.1 創(chuàng)建api模塊

api模塊只對外提供接口,所有調用關系都有api模塊來完成。

新建模塊這里選擇“Java”,名稱填寫“dubbo-api”,構建方式選Maven,JDK這里選17的版本,然后點擊“創(chuàng)建”

創(chuàng)建完了后項目如下:
可以看到,父級的pom文件中,自動增加了我們剛才創(chuàng)建的module

3.2 創(chuàng)建一個接口

我們創(chuàng)建一個Service接口。創(chuàng)建之前,先創(chuàng)建包。
右擊 dubbo-api模塊的java文件夾。
選擇“新建”—>“軟件包”。

包名可以參考下面這樣,可以寫成這樣的的目錄。

com.guo.service

注意:我們這里只是簡單的提供了一個service層, 實際開發(fā)中,可能還有其他的軟件包,比如
com.guo.entity等,這里不做演示。
創(chuàng)建完后,項目結構如下:

然后,右擊剛才創(chuàng)建的文件夾service,選擇"新建"—>“Java類”

這里創(chuàng)建的接口的名字假如是 DogService
注意:這里選的是“接口”,(interface ),不是類。然后按回車確認。

在里面增加一行代碼:

   String sayHello(String name);

完整代碼參考如下:

package com.guo.service;
public interface DogService {
    //一個接口
    String sayHello(String name);
}

3.搭建 生成者(服務提供者)模塊

這里的生產者主要的功能是提供服務(數(shù)據(jù)等),往前要去實現(xiàn)前面的接口,往后要做一些查詢操作。本文只演示實現(xiàn)接口部分。

3.1 創(chuàng)建模塊

右擊父工程,選擇“新建”—>“模塊”

填寫相關的內容,然后點擊創(chuàng)建。

創(chuàng)建完后,項目結構如下:

3.2 添加依賴

這個模塊需要增加一些依賴,打開dubbo-provider模塊的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>com.guo</groupId>
        <artifactId>dubbo_demo</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <artifactId>dubbo-provider</artifactId>
    <dependencies>
        <!--dubbo 與 spring-boot 整合包-->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
        </dependency>
        <!--springboot 啟動核心包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

3.3 添加實現(xiàn)類

這里主要實現(xiàn)api模塊的DogService接口。
先創(chuàng)建項目包。
右擊dubbo-provider中的java文件夾,選擇“新建”—>“軟件包”。

軟件包的包名參考為 com.guo.service,然后按回車確定。

右擊剛才創(chuàng)建的service文件夾,選擇“新建”—>“Java類”

實現(xiàn)類的名字是 DogServiceImpl

然后我們讓這個實現(xiàn)類去實現(xiàn)api模塊的接口。
參考代碼如下:

package com.guo.service;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.stereotype.Component;
@DubboService
@Component
public class DogServiceImpl  implements  DogService{
    @Override
    public String sayHello(String name) {
        return "Hello, " + name + " (from direct provider)";
    }
}

注意,當你去實現(xiàn)DogService這個接口時候,報錯是正常的,

解決這個報錯很簡單,把鼠標放上去,會看到一個“更多操作”,然后點擊“更多操作"

在彈出的菜單里面點擊“添加對模塊xxxx的依賴”

此時,你會發(fā)現(xiàn),當前這個模塊的pom.xml文件中多了一個依賴(就是我們前面創(chuàng)建的dubbo-api模塊)。

3.4 創(chuàng)建啟動類

右擊dubbo-provider中的 “guo”這個文件夾(注意啟動類的位置)

類名為:ProviderApplication
然后按回車

啟動類的參考代碼如下:

package com.guo;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableDubbo
@SpringBootApplication
public class ProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
        System.out.println("Dubbo Provider started.");
    }
}

添加完代碼后,項目參考如下:

3.5 添加配置文件

右擊dubbo-provider中的resources文件夾,選擇“新建" ,然后點擊“文件”

這個配置文件的名字叫:application.yml
里面參考的配置內容如下:

server:
  port: 8081
dubbo:
  application:
    name: dubbo-provider
  protocol:
    name: dubbo
    port: 20880          # dubbo 服務端口,消費者直連時需要
  qos:
    enable: false

添加后,項目內容如下:

4.搭建 消費者模塊

消費者模塊和生產者模塊非常類似。

4.1 創(chuàng)建模塊

右擊項目名,點擊“新建”—>“模塊”。

然后參考輸入下面的內容

創(chuàng)建完畢以后,項目結構如下:

4.2 添加依賴

打開dubbo-provider模塊的依賴文件,參考增加下面的內容

參考代碼:

<?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>com.guo</groupId>
        <artifactId>dubbo_demo</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <artifactId>dubbo-consumer</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

4.3 添加Contorller

先新建軟件包,右擊java,選擇“新建”——>“軟件包”

參考輸入下面的內容:

com.guo.controller

然后,繼續(xù)右擊Controller,點擊“新建”,然后點擊“Java 類”

Controller的名字假定為:DogController

代碼參考如下:

package com.guo.controller;
import com.guo.service.DogService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DogController {
    // 直連模式:直接指定 Provider 的地址和 Dubbo 端口
    @DubboReference(url = "dubbo://127.0.0.1:20880")
    private DogService dogService;
    @GetMapping("/hello")
    public String sayHello(@RequestParam("name") String name) {
        return dogService.sayHello(name);
    }
}

4.4 創(chuàng)建啟動類

右擊“guo”這個文件夾,選擇“新建”—>“Java類”

類名為:ConsumerApplication

代碼參考:

package com.guo;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableDubbo
@SpringBootApplication
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}

4.5 添加配置文件

右擊“resources”文件,選擇 “新建”—>“文件”

文件的名字為:
application.yml

內容參考如下:

server:
  port: 8082
dubbo:
  application:
    name: dubbo-demo-consumer
  # 不需要任何注冊中心配置
  qos:
    enable: false

5.啟動測試

先啟動生產者Provider模塊

再啟動消費者模塊(Consumer)

可以看到正常啟動:

然后打開瀏覽器,在瀏覽器中輸入下面的地址:

http://localhost:8082/hello?name=張三

看到下面內容,表示成功:

本文參考代碼如下:dubbo_demo.zip

鏈接: https://pan.baidu.com/s/1ScG54D-WSSHw6k33hnH7ig?pwd=29r2

提取碼:  29r2 

到此這篇關于SpringBoot使用Dubbo的全過程(直連模式)的文章就介紹到這了,更多相關SpringBoot使用Dubbo內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring?Cloud灰度部署實現(xiàn)過程詳解

    Spring?Cloud灰度部署實現(xiàn)過程詳解

    這篇文章主要為大家介紹了Spring?Cloud灰度部署實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 如何在Java中使用支付寶SDK來獲取用戶的OpenID

    如何在Java中使用支付寶SDK來獲取用戶的OpenID

    在支付寶開放平臺中,獲取用戶的OpenID通常是在用戶授權后通過支付寶的OAuth 2.0授權流程實現(xiàn)的,以下是一個基本的步驟說明,以及如何在Java中使用支付寶SDK來獲取用戶的OpenID
    2024-08-08
  • 簡單易懂的MyBatis分庫分表方案分享

    簡單易懂的MyBatis分庫分表方案分享

    這篇文章主要給大家介紹了關于MyBatis分庫分表方案的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用MyBatis具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • Maven多個項目實現(xiàn)聚合過程解析

    Maven多個項目實現(xiàn)聚合過程解析

    這篇文章主要介紹了Maven多個項目實現(xiàn)聚合過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Java多線程實現(xiàn)FTP批量上傳文件

    Java多線程實現(xiàn)FTP批量上傳文件

    這篇文章主要為大家詳細介紹了Java多線程實現(xiàn)FTP批量上傳文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 使用Spring的AbstractRoutingDataSource實現(xiàn)多數(shù)據(jù)源切換示例

    使用Spring的AbstractRoutingDataSource實現(xiàn)多數(shù)據(jù)源切換示例

    這篇文章主要介紹了使用Spring的AbstractRoutingDataSource實現(xiàn)多數(shù)據(jù)源切換示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • ModelMapper基本使用和常見場景示例詳解

    ModelMapper基本使用和常見場景示例詳解

    ModelMapper是Java對象映射庫,支持自動映射、自定義規(guī)則、集合轉換及高級配置(如匹配策略、轉換器),可集成SpringBoot,減少樣板代碼,提升開發(fā)效率,本文給大家介紹ModelMapper基本使用和常見場景,感興趣的朋友一起看看吧
    2025-06-06
  • VSCode?Java項目JDK配置完整攻略指南(JDK版本切換不求人)

    VSCode?Java項目JDK配置完整攻略指南(JDK版本切換不求人)

    JDK是指Java軟件開發(fā)工具包,是Java編程語言的官方實現(xiàn),由Oracle公司提供,不斷更新和維護,這篇文章主要介紹了VSCode Java項目JDK配置(JDK版本切換不求人)的相關資料,需要的朋友可以參考下
    2026-05-05
  • nacos客戶端一致性hash負載需求實現(xiàn)

    nacos客戶端一致性hash負載需求實現(xiàn)

    這篇文章主要介紹了nacos客戶端一致性hash負載的需求實現(xiàn)過程及步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02
  • Java JAR 啟動內存參數(shù)配置指南(從基礎設置到性能優(yōu)化)

    Java JAR 啟動內存參數(shù)配置指南(從基礎設置到性能優(yōu)化)

    在啟動 Java 可執(zhí)行 JAR 文件時,合理配置 JVM 內存參數(shù)是保障應用穩(wěn)定性和性能的關鍵,本文將系統(tǒng)講解如何通過命令行參數(shù)、環(huán)境變量等方式指定內存配置,并結合實際場景提供優(yōu)化建議,感興趣的朋友跟隨小編一起看看吧
    2025-11-11

最新評論

弥勒县| 武功县| 嘉义市| 会东县| 大化| 剑阁县| 庄浪县| 彰化市| 保亭| 图们市| 望谟县| 嘉义县| 临猗县| 山丹县| 厦门市| 宁陕县| 凤城市| 饶平县| 高要市| 德清县| 石柱| 克什克腾旗| 万源市| 宽甸| 双鸭山市| 罗田县| 西贡区| 日喀则市| 崇明县| 江都市| 仙游县| 吐鲁番市| 绵阳市| 浠水县| 长泰县| 安溪县| 镇原县| 六盘水市| 神木县| 临桂县| 宁夏|