国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【SpringBoot集成Nacos+Dubbo】企業(yè)級項目集成微服務(wù)組件,實現(xiàn)RPC遠(yuǎn)程調(diào)用

這篇具有很好參考價值的文章主要介紹了【SpringBoot集成Nacos+Dubbo】企業(yè)級項目集成微服務(wù)組件,實現(xiàn)RPC遠(yuǎn)程調(diào)用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、需求

在日益增長的業(yè)務(wù)需求中,一開始使用的是每個項目獨立開發(fā),雖然都是前后端分離的項目,但是每一個項目之間互不干擾。后來,因為某種需求,需要幾個項目的數(shù)據(jù)相互交錯獲取。

最開始的想法就是集成多個數(shù)據(jù)源。

舉例

有A、B、C三個項目,對應(yīng)著數(shù)據(jù)庫DBa、DBb、DBc、,現(xiàn)在A項目需要同時操作DBa、DBc數(shù)據(jù)庫。

這時,最理想就是調(diào)用RPC框架了。

環(huán)境/版本

IDEA2022.3.2
java11
SpringBoot 2.7.12-SNAPSHOT
Nacos 2.2.2

注意:如果使用SpringBoot3.x以上的要使用jdk17以上的,否則會啟動報錯。

二、須知

2.1、什么是RPC?

RPC全稱為Remote Procedure Call,翻譯為遠(yuǎn)程過程調(diào)用。它是一種計算機(jī)網(wǎng)絡(luò)通信協(xié)議,用于在不同的進(jìn)程或計算機(jī)之間進(jìn)行通信,讓它們像調(diào)用本地方法一樣調(diào)用遠(yuǎn)程方法。

假設(shè)你有一個應(yīng)用程序,它需要調(diào)用另外一個計算機(jī)上的函數(shù)或方法,通常情況下,你需要通過網(wǎng)絡(luò)編程,手動發(fā)送請求和接收響應(yīng)。而RPC則可以讓你像調(diào)用本地函數(shù)一樣,直接調(diào)用遠(yuǎn)程函數(shù),簡化了網(wǎng)絡(luò)編程的復(fù)雜度。

具體來說,RPC通信過程中,調(diào)用方會像調(diào)用本地方法一樣,發(fā)送請求到遠(yuǎn)程服務(wù)器,請求中包含了要調(diào)用的方法名和參數(shù)列表。遠(yuǎn)程服務(wù)器接收到請求后,會解析請求,調(diào)用對應(yīng)的方法,并將執(zhí)行結(jié)果返回給調(diào)用方。調(diào)用方收到響應(yīng)后,就可以像處理本地函數(shù)一樣,對結(jié)果進(jìn)行處理。

通俗來說,RPC就像是你在打電話時,向遠(yuǎn)程的對方說出你需要做的事情,對方完成后告訴你結(jié)果。這樣,你就不需要親自去完成任務(wù)了,這個過程中,你只需要關(guān)心需要完成的任務(wù)和結(jié)果,不需要關(guān)心具體的實現(xiàn)方式。

RPC在分布式系統(tǒng)中的應(yīng)用非常廣泛,比如微服務(wù)架構(gòu)中的服務(wù)調(diào)用,Hadoop中的遠(yuǎn)程過程調(diào)用等。它可以讓分布式系統(tǒng)更加簡單、靈活和可擴(kuò)展。

2.2、什么是Dubbo?

背景
Dubbo的誕生背景可以追溯到2011年,當(dāng)時阿里巴巴內(nèi)部的分布式架構(gòu)和服務(wù)治理已經(jīng)比較成熟,但面對日益增長的業(yè)務(wù)規(guī)模和復(fù)雜性,分布式服務(wù)之間的調(diào)用和管理成為了一個巨大的挑戰(zhàn)。在這樣的背景下,Dubbo應(yīng)運而生。

Dubbo最初由阿里巴巴公司的工程師提出并開發(fā),旨在為阿里巴巴內(nèi)部的分布式系統(tǒng)提供一種高性能、可靠、可擴(kuò)展的RPC框架,幫助阿里巴巴更好地構(gòu)建分布式服務(wù)架構(gòu)和實現(xiàn)服務(wù)治理。

后來,隨著Dubbo逐漸成熟并在阿里巴巴內(nèi)部廣泛應(yīng)用,阿里巴巴決定將其開源,于2011年底正式發(fā)布第一個版本,隨后在2012年和2015年分別發(fā)布了2.0和2.5版本,以及2019年發(fā)布的2.7版本。Dubbo的開源以及不斷更新迭代,吸引了越來越多的用戶和開發(fā)者參與,逐漸成為了Java生態(tài)系統(tǒng)中最受歡迎的RPC框架之一。

如今,Dubbo已經(jīng)廣泛應(yīng)用于阿里巴巴、華為、網(wǎng)易等企業(yè)的分布式系統(tǒng)中,并得到了國內(nèi)外各大互聯(lián)網(wǎng)公司和社區(qū)的廣泛認(rèn)可和支持。

2018年11月,Apache Dubbo 成為了 Apache 的頂級項目,這意味著 Dubbo 已經(jīng)發(fā)展成為一個非常成熟、高質(zhì)量、社區(qū)活躍的開源項目。Dubbo 的加入也進(jìn)一步加強了 Apache 在分布式系統(tǒng)領(lǐng)域的地位,為分布式系統(tǒng)的發(fā)展和推廣做出了巨大貢獻(xiàn)。

作用

Dubbo主要包括三個核心模塊:

Provider(服務(wù)提供者):暴露服務(wù)的應(yīng)用,提供服務(wù)的方法。

Consumer(服務(wù)消費者):調(diào)用遠(yuǎn)程服務(wù)的應(yīng)用,消費服務(wù)的方法。

Registry(服務(wù)注冊中心):服務(wù)注冊與發(fā)現(xiàn)的管理中心。

Dubbo框架的工作流程如下:

1、服務(wù)提供者啟動,向注冊中心注冊自己提供的服務(wù)。

2、服務(wù)消費者啟動,向注冊中心訂閱自己需要的服務(wù)。

3、注冊中心返回可用的服務(wù)列表給服務(wù)消費者。

4、服務(wù)消費者調(diào)用遠(yuǎn)程服務(wù)。

5、遠(yuǎn)程服務(wù)提供者響應(yīng)請求,返回結(jié)果給服務(wù)消費者。

6、服務(wù)消費者收到響應(yīng),完成調(diào)用。

2.3、什么是Nacos?

Nacos是一種基于云原生理念構(gòu)建的動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)治理平臺,由阿里巴巴開源團(tuán)隊于2018年開源。它主要解決了分布式系統(tǒng)中服務(wù)注冊、發(fā)現(xiàn)、配置管理和DNS服務(wù)等問題。

Nacos提供了以下核心功能:

1、服務(wù)注冊和發(fā)現(xiàn):Nacos可以幫助服務(wù)提供者自動注冊服務(wù)并向Nacos Server匯報服務(wù)實例的健康狀況,服務(wù)消費者可以通過Nacos查詢可用服務(wù)實例。

2、配置管理:Nacos提供了集中式的配置管理功能,支持動態(tài)配置、版本管理、灰度發(fā)布、監(jiān)聽等功能,可以方便地管理分布式系統(tǒng)中的配置信息。

3、服務(wù)路由和負(fù)載均衡:Nacos支持服務(wù)提供者和消費者之間的流量管理和路由規(guī)則的動態(tài)更新,以及多種負(fù)載均衡策略。

4、DNS服務(wù):Nacos支持提供DNS服務(wù),可以在無需其他服務(wù)發(fā)現(xiàn)組件的情況下使用DNS方式進(jìn)行服務(wù)發(fā)現(xiàn)。


溫馨提示:Dubbo官網(wǎng)上默認(rèn)的注冊中心是Zookeeper,本文注冊中心使用的是Nacos。

三、普通的SpringBoot項目集成微服務(wù)組件方案(筆者給出兩種)

方案一(推薦)

像筆者這種的項目(看 需求),就是因為發(fā)展而演變成要使用微服務(wù)組件,而不是一開始就選好微服務(wù)架構(gòu)的。就看這個部分就好了。否則請看方案二。

1、導(dǎo)入maven依賴(消費者和提供者都是一樣的)

		<!--nacos-->
        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>2.2.2</version>
        </dependency>
        <!-- dubbo -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>3.2.0-beta.6</version>
        </dependency>

啟動類加上注解@EnableDubbo
【SpringBoot集成Nacos+Dubbo】企業(yè)級項目集成微服務(wù)組件,實現(xiàn)RPC遠(yuǎn)程調(diào)用

2、配置application.yml文件(消費者)

server:
  port: 8102
spring:
  cloud:
    nacos:
      server-addr: localhost:8848
dubbo:
  consumer:
    check: false
  application:
    name: dubbo-springboot-demo-consumer
  protocol:
    name: dubbo
    # 設(shè)置為-1表示自動配置可用端口
    port: -1
  registry:
    address: nacos://127.0.0.1:8848

配置application.yml文件(提供者)

server:
  port: 8105
spring:
  cloud:
    nacos:
      server-addr: localhost:8848
dubbo:
  application:
    name: dubbo-springboot-demo-provider
  protocol:
    name: dubbo
    port: -1
  registry:
    address: nacos://127.0.0.1:8848
    

3、統(tǒng)一接口類(注意看包名,因為消費者和提供者的包名要一致)

package com.example.astar.component;

public interface DemoService {

    String sayHello(String name);
}

4、提供者的接口(接口上添加@DubboService注解)

package com.example.astar.service.Impl;

import com.example.astar.component.DemoService;// 注意包名
import org.apache.dubbo.config.annotation.DubboService;

@DubboService
public class AstarServiceImpl implements DemoService {

    private static int flag = 0;

    @Override
    public String sayHello(String name) {
        String message = "你好??! " + name + " =========》 " + flag++;
        return message;
    }
}

5、消費者調(diào)用接口

package com.example.astar.controller;

import com.example.astar.component.DemoService;//注意包名
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserController {

    @DubboReference
    private DemoService demoService;

    @GetMapping("/1")
    public String hello() {

        String result = demoService.sayHello("Astar");
        String re = "Receive result ======> " + result;
        System.out.println(re);
        return re;
    }
}

6、調(diào)用成功

啟動這兩個項目(消費者和提供者),因為消費者配置了check: false,所以先啟動哪一個項目都是可以的。消費者的端口是8102,我們訪問一下

http://localhost:8102/user/1

看到如下
【SpringBoot集成Nacos+Dubbo】企業(yè)級項目集成微服務(wù)組件,實現(xiàn)RPC遠(yuǎn)程調(diào)用

溫馨提示:

DemoService的全限定包名是import com.example.astar.component.DemoService,也就是說消費者和提供者之間的橋梁就是來自同一個接口,我們需要在項目中分別創(chuàng)建一模一樣的接口才可以,實現(xiàn)類不用管。如果提供者和消費者的接口的包名不一樣就會導(dǎo)致調(diào)用失敗。

說人話:就是兩個項目都不在一個文件下,怎么可能用同一個類?這里只要這個類本身、包名一樣就可以了,Dubbo就會認(rèn)為是一樣的。

方案二

此方案是在一開始就決定用微服務(wù)這個框架的項目來說的,通常我們會分為類似以下幾個子模塊:

【SpringBoot集成Nacos+Dubbo】企業(yè)級項目集成微服務(wù)組件,實現(xiàn)RPC遠(yuǎn)程調(diào)用

interface模塊

【SpringBoot集成Nacos+Dubbo】企業(yè)級項目集成微服務(wù)組件,實現(xiàn)RPC遠(yuǎn)程調(diào)用
步驟我就懶得說了,大致和方案一一樣,不同的地方是公共模塊interface的導(dǎo)入:
在消費者和提供者上添加子模塊即可:

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-samples-spring-boot-interface</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

溫馨提示:打包的時候會把子模塊的引入部分一起打包,不用擔(dān)心,正常使用即可,其余部分不變。

END


茫茫人海路漫漫,
潛心修煉方有顏。
踏實走好每一步,
靜待花開見真章。
文章來源地址http://www.zghlxwxcb.cn/news/detail-440756.html

祝您開發(fā)愉快!

到了這里,關(guān)于【SpringBoot集成Nacos+Dubbo】企業(yè)級項目集成微服務(wù)組件,實現(xiàn)RPC遠(yuǎn)程調(diào)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 畢業(yè)設(shè)計項目:基于SpringBoot+Hadoop+Vue企業(yè)級網(wǎng)盤分布式系統(tǒng)的設(shè)計與實現(xiàn)

    2.1 運行環(huán)境 2.2 基本處理流程 企業(yè)網(wǎng)盤系統(tǒng)的使用者分為企業(yè)普通員工和企業(yè)管理員,所以進(jìn)行的基本處理流程是不一樣的。企業(yè)普通員工進(jìn)入本系統(tǒng)前臺主界面后看到的是首頁數(shù)據(jù)大盤,系統(tǒng)右上角有用戶的頭像和系統(tǒng)公告通知。在首頁頂部的位置有個歡迎用戶功能,此模

    2024年02月05日
    瀏覽(39)
  • 企業(yè)級開發(fā)中協(xié)同開發(fā)與持續(xù)集成持續(xù)部署

    企業(yè)級開發(fā)中協(xié)同開發(fā)與持續(xù)集成持續(xù)部署

    每個項目有唯一的代碼倉庫,所以不是每個開發(fā)者都需要創(chuàng)建一個代碼倉庫,一般都是項目負(fù)責(zé)人創(chuàng)建: 代碼倉庫有以下幾種: github gitee gitlib 代碼倉庫的使用方法都差不多。 以gitee為例創(chuàng)建一個倉庫: 如果沒有賬戶的話,要注冊一個新的用戶名,注冊用戶之后,使用注冊

    2024年02月14日
    瀏覽(34)
  • 云計算與大數(shù)據(jù)平臺的企業(yè)級數(shù)據(jù)集成解決方案

    隨著互聯(lián)網(wǎng)的普及和人們對數(shù)據(jù)的需求不斷增加,企業(yè)們需要更加高效、智能化地處理和分析大量的數(shù)據(jù)。云計算和大數(shù)據(jù)平臺為企業(yè)提供了一種新的解決方案,可以幫助企業(yè)更高效地處理和分析大量數(shù)據(jù)。 云計算是一種基于互聯(lián)網(wǎng)的計算資源共享和分配模式,可以讓企業(yè)在

    2024年04月25日
    瀏覽(53)
  • 談?wù)勂髽I(yè)級應(yīng)用的自定義 UI 創(chuàng)建和集成方法一覽

    談?wù)勂髽I(yè)級應(yīng)用的自定義 UI 創(chuàng)建和集成方法一覽

    筆者在掘金社區(qū)上已經(jīng)發(fā)布了一些技術(shù)文章,記錄了自己工作于企業(yè)級前端應(yīng)用幾年以來積累的一些項目經(jīng)驗和教訓(xùn)。 之前的文章關(guān)于企業(yè)級 Web 應(yīng)用搜索引擎優(yōu)化 Search Engine Optimization 的一些工作經(jīng)驗分享已經(jīng)提到,所謂企業(yè)級前端應(yīng)用,是指為大型企業(yè)或組織開發(fā)的前端應(yīng)

    2024年02月03日
    瀏覽(59)
  • vue2企業(yè)級項目(八)

    4、 searchForm 創(chuàng)建 components/searchForm/index.js 使用案例 5、 searchTable 創(chuàng)建 components/searchTable/index.js 創(chuàng)建 components/searchTable/index.vue 使用案例 6、 dialogForm 創(chuàng)建 components/dialogForm/index.js 創(chuàng)建 components/dialogForm/index.vue 使用案例

    2024年02月14日
    瀏覽(25)
  • vue2企業(yè)級項目(四)

    路由設(shè)計,過場動畫設(shè)計 項目下載依賴 src 目錄下創(chuàng)建 router/index.js 創(chuàng)建 router/modules 文件,并使用 require.context 技術(shù)進(jìn)行動態(tài)引入。 創(chuàng)建 router/hook.js 文件,編寫路由攔截等操作 使用 router.addRoutes 方法,動態(tài)設(shè)置后端傳入的路由。(不建議) 前端開發(fā)需要路由來找具體的頁面

    2024年02月15日
    瀏覽(25)
  • vue2企業(yè)級項目(三)

    引入mockjs,i18n 項目下載依賴 根目錄創(chuàng)建 mock 文件夾,并創(chuàng)建 mock/index.js 創(chuàng)建 mock/mockPort.js 創(chuàng)建 mock/modules/test.js 示例 src 目錄下創(chuàng)建 api/mock.js 示例 main.js 添加一下內(nèi)容 根目錄創(chuàng)建 vue.config.js 項目下載依賴 src 目錄下創(chuàng)建 i18n/index.js 文件 main.js 引入使用 i18n ,和 vuex 生成的 s

    2024年02月14日
    瀏覽(21)
  • 低代碼企業(yè)級PMO項目管理系統(tǒng),360度全景透視企業(yè)管理視角

    低代碼企業(yè)級PMO項目管理系統(tǒng),360度全景透視企業(yè)管理視角

    在一個崇高的目標(biāo)支持下,不停地工作,即使慢,也一定會獲得成功。 ? 愛因斯坦 企業(yè)級PMO項目管理業(yè)務(wù)是行業(yè)里相對成熟和規(guī)范的業(yè)務(wù),擁有眾多商業(yè)套件和標(biāo)準(zhǔn)產(chǎn)品。 然而隨著企業(yè)數(shù)字化建設(shè)進(jìn)入深水區(qū),站在甲方角度進(jìn)行項目管理的業(yè)務(wù)視角、精細(xì)化管控、標(biāo)準(zhǔn)化管

    2024年02月03日
    瀏覽(23)
  • 企業(yè)級微服務(wù)架構(gòu)實戰(zhàn)項目--xx優(yōu)選-用戶登錄

    企業(yè)級微服務(wù)架構(gòu)實戰(zhàn)項目--xx優(yōu)選-用戶登錄

    1.登錄常量 ?2.登錄地址 ?3.配置域名 4.啟動程序 ? ? 觸發(fā)連接小程序后端的登錄接口 ? ?小程序controller的登錄方法 ?

    2024年02月11日
    瀏覽(21)
  • 企業(yè)級高負(fù)載web服務(wù)器-Tomcat小項目

    企業(yè)級高負(fù)載web服務(wù)器-Tomcat小項目

    靜態(tài)頁面: 在網(wǎng)站設(shè)計中,純粹HTML格式的網(wǎng)頁(可以包含圖片、視頻JS (前端功能實現(xiàn))、CSS (樣式)等)通常 被稱為\\\"靜態(tài)網(wǎng)頁\\\" 特點: 處理文件類型:如.html、jpg、.gif、.mp4、.swf、.avi、.wmv、.flv等2. 地址中不含有問號\\\"?\\\"或等特殊符號。 保存在網(wǎng)站服務(wù)器文件系統(tǒng)上的,是

    2024年02月14日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包