springboot集成dubbo實現微服務系統

目錄

1.說明

2.示例

3.總結


1.說明

dubbo官網:https://cn.dubbo.apache.org/zh-cn/

Apache Dubbo 是一款 RPC 服務開發框架,用于解決微服務架構下的服務治理與通信問題,支持多種語言,官方提供了 Java、Golang 等多語言 SDK 實現。使用 Dubbo 開發的微服務原生具備相互之間的遠程地址發現與通信能力, 利用 Dubbo 提供的豐富服務治理特性,可以實現諸如服務發現、負載均衡、流量調度等服務治理訴求。Dubbo 被設計為高度可擴展,用戶可以方便的實現流量攔截、選址的各種定制邏輯。

2.示例

實現說明:

????????創建一個空項目,在空項目中創建3個模塊,分別定義接口工程,生產者工程及消費者工程。并在生產者工程及消費者工程中引入接口工程。

????????接口工程存放表的實體類及服務接口。

????????生產者工程提供服務接口的實現。

????????消費者工程調用服務接口。

實現步驟:

①引入dubbo依賴

        <!-- Dubbo Spring Boot Starter --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.8</version></dependency><dependency><!--zookerper版本一定要匹配! --><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-zookeeper</artifactId><version>2.7.8</version></dependency>

?②在接口工程中創建接口

package com.example.service;public interface PrivoderService {String getInfo();
}

③在生產者工程中實現接口,并進行dubbo的配置

接口實現:使用dbboservice注解,將服務的實現暴露給dubbo

package com.example.provider.service.impl;import com.example.service.PrivoderService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.stereotype.Service;/*** @Author linaibo* @Date 2023/11/18 15:28* @Version 1.0*/
@Service
@DubboService
public class PrividerServiceImpl implements PrivoderService {@Overridepublic String getInfo() {return "執行成功";}
}

?配置文件:

server:port: 8881
dubbo:application:name: provider-service //dubbo的應用名registry:protocol: zookeeper //使用zookeeper作為服務的注冊中心address: 127.0.0.1:2181 //zookeeper地址protocol:name: dubbo //使用dubbo協議port: 20885consumer:timeout: 60000 //調用接口的超時時間check: false //啟動時不校驗消費者是否已啟動
spring:datasource:url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: 123456
mybatis:mapper-locations: classpath*:mapper/*Mapper.xmltype-aliases-package: com.**.domain

啟動類配置:添加@EnableDubbo,用于將dubbo相關的配置bean加載到spring容器

package com.example.provider;import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @Author linaibo* @Date 2023/11/18 15:32* @Version 1.0*/
@SpringBootApplication
@EnableDubbo
public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class, args);}
}

?④生產者工程中調用接口

調用:使用DubboReference指定調用的服務

package com.example.consumer.service.impl;import com.example.consumer.service.ConsumerService;
import com.example.domain.AjaxResult;
import com.example.service.ISysConfigService;
import com.example.service.PrivoderService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;import static com.example.domain.AjaxResult.success;/*** @Author linaibo* @Date 2023/11/18 15:56* @Version 1.0*/
@Service
public class ConsumerServiceImpl implements ConsumerService {@DubboReferenceprivate PrivoderService privoderService;@DubboReferenceprivate ISysConfigService sysConfigService;@Overridepublic String getInfo() {String info = privoderService.getInfo();return info;}@Overridepublic AjaxResult getConfig(Long configId) {return success(sysConfigService.selectConfigById(configId));}
}

配置文件及啟動類配置和生產者工程一致

啟動zookeeper服務及生產者工程及消費者工程,就可以進行服務的調用。

3.總結

可以通過dubbo-admin進行服務的管理及查看。

dubbo.consumer.timeout:調用超時時間(毫秒),默認為 1000。debug模式下會導致調用失敗,所以需要調大。

dubbo.consumer.check:為true時,開啟服務啟動時檢查依賴的服務是否可用,默認為 true。

也就是說,生產者沒有啟動時,消費者無法啟動,需要設置為false

參照:SpringBoot整合dubbo+zooker搭建分布式服務(超詳細)_springboot+dubbo分布式項目-CSDN博客

SpringBoot項目集成Dubbo_springboot集成dubbo-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13085.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13085.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13085.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是Vue.js? Vue.js簡介

什么是Vue.js? Vue.js簡介 Vue.js是一種用于構建用戶界面的前端框架。它是目前非常流行的JavaScript框架之一&#xff0c;被廣泛應用于單頁應用和響應式網頁開發。 Vue.js具有以下特點和優勢&#xff1a; 輕量級&#xff1a; Vue.js的文件體積很小&#xff0c;加載速度快&…

代碼隨想錄--鏈表--反轉鏈表

題目 題意&#xff1a;反轉一個單鏈表。 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL 思路 如果再定義一個新的鏈表&#xff0c;實現鏈表元素的反轉&#xff0c;其實這是對內存空間的浪費。 其實只需要改變鏈表的next指針的…

GPU學習記一下線程分組相關

在compute的時候&#xff0c;是要dispatch一個數量的代表分了多少塊任務集&#xff0c;dispatch的塊內部也是有一個數量的&#xff0c;那么這些值怎么取的呢 內部&#xff0c;N卡32 外面dispatch的數量就是all/32 然后細說這個值 這有一個叫core的東西&#xff0c;就是相當于th…

嵌入式學習-PWM輸出比較

簡介 PWM技術 輸出比較框圖介紹 定時器部分 比較器控制部分 輸出控制部分 相關寄存器

(5.4–5.10)投融資周報|共38筆公開投融資事件,基礎設施領跑,游戲融資活躍

5月4日至5月10日期間&#xff0c;加密市場共發生38筆投融資事件&#xff0c;其中基礎設施18筆、游戲5 筆、其他4 筆、DeFi 3筆、Depin 3 筆、CeFi 2筆、NFT2筆、 RWA1筆。 本周千萬美金以上融資有5筆&#xff1a; 加密貨幣交易公司Arbelos完成了一輪2800 萬美元的種子輪融資&…

智慧園區EasyCVR視頻智能管理方案:構建高效安全園區新視界

一、背景分析 園區作為城市的基本單元&#xff0c;是最重要的人口和產業聚集區。根據行業市場調研&#xff0c;90%以上城市居民工作與生活在園區進行&#xff0c;80%以上的GDP和90%以上的創新在園區內產生&#xff0c;可以說“城市&#xff0c;除了馬路都是園區”。 園區形態…

C++ static_cast學習

static_cast可實現&#xff0c; 1 基本類型之間的轉換 2 void指針轉換為任意基本類型的指針 3 用于有繼承關系的子類與父類之間的指針或引用的轉換 用于基本類型轉化時&#xff0c;會損失精度類似于C語言的強制轉化&#xff1b; 下面先看一下void指針的轉換&#xff1b; …

手動實現Promise

// 定義異步調用的主類&#xff0c;名為 MyPromise class MyPromise {// 執行器接收 resolve 和 reject 方法來改變 promise 的狀態constructor(executor) {// 初始化狀態為 "pending"this.state "pending";// 初始化值為 undefinedthis.value undefined…

鏡像抑制和鏡像衰減有什么不同

在很多無線產品接收機手冊中&#xff0c;我們會看到兩個參數&#xff0c;一個是鏡像抑制&#xff08;Image Rejection&#xff09;&#xff0c;另一個是鏡像衰減&#xff08;Image Attention&#xff09;&#xff0c;但這兩者究竟有什么不同&#xff0c;一直比較疑惑&#xff0…

AI學習指南線性代數篇-奇異值分解

AI學習指南線性代數篇-奇異值分解 一、概述 在人工智能領域&#xff0c;線性代數是一項非常重要的基礎知識&#xff0c;而奇異值分解&#xff08;Singular Value Decomposition, SVD&#xff09;作為線性代數中的一種重要工具&#xff0c;被廣泛應用于機器學習、數據科學等領…

理解Spring的IOC核心:為何它成為開發中的關鍵要素?

Spring框架采用的IOC&#xff08;依賴注入&#xff09;技術&#xff0c;是一種創新的設計思路&#xff0c;它授權程序開發人員將組件實例化及生命周期管理的職責轉交給框架自身處理。在這一機制下&#xff0c;Spring框架負責協調并裝配應用程序中的各個組件&#xff0c;從而實現…

以太坊Layer 2開發商StarkWare

文章目錄 以太坊Layer 2開發商StarkWare相關新聞StarkWare是什么團隊介紹StarkEx 和 StarkNet參考以太坊Layer 2開發商StarkWare 相關新聞 據The Block 2021年11月16日消息,使用ZK-rollups技術的以太坊第2層開發商StarkWare在C輪融資中籌集了5000萬美元,其估值已達20億美元…

三路輸出小功率開關電源【MATLAB/simulink】

擬選用一種DC-DC變換器拓撲使用1700 V SiC MOSFET或IGBT設計三相功率系 統的高頻開關直流輔助電源&#xff0c;它可用于太陽能逆變器、工業開關電源、電動汽車充電器、 電機驅動裝置等領域。&#xff08;建議采用單端反激式電路拓撲&#xff0c;開關頻率為80kHz) 電路基本參數&…

【Unity學習筆記】第十七 Quaternion 中 LookRotation、Lerp、Slerp、RotateTowards等方法辨析與驗證

轉載請注明出處: https://blog.csdn.net/weixin_44013533/article/details/138909256 作者&#xff1a;CSDN|Ringleader| 目錄 Quaternion API 速覽FromToRotation在Transform中的應用LookRotation 中upwards取Vector3.up和 transform.up的區別旋轉時如何保持Y軸不變&#xff…

leetcode題目45

跳躍游戲Ⅱ 中等 給定一個長度為 n 的 0 索引整數數組 nums。初始位置為 nums[0]。 每個元素 nums[i] 表示從索引 i 向前跳轉的最大長度。換句話說&#xff0c;如果你在 nums[i] 處&#xff0c;你可以跳轉到任意 nums[i j] 處: 0 < j < nums[i] i j < n 返回到達 n…

戰網國際服怎么下載 暴雪戰網一鍵下載安裝圖文教程

戰網國際版&#xff0c;或稱為Battle.net全球版&#xff0c;是暴雪娛樂構建的一項跨越國界的綜合游戲交流平臺&#xff0c;它無視地理限制&#xff0c;旨在服務全球每一個角落的游戲愛好者。不同于地區專屬版本&#xff0c;國際版為玩家開啟了一扇無門檻的大門&#xff0c;讓每…

org.springframework.jdbc.BadSqlGrammarException

Cause: java.sql.SQLSyntaxErrorException: Table ‘web.emp’ doesn’t exist 產生原因&#xff1a;web表找不到&#xff0c;所以可能數據庫配置錯誤 spring.datasource.urljdbc:mysql://localhost:3306/web02 更改完成后運行成功

音頻筑基:100字說清哈曼曲線的Why和What

音頻筑基&#xff1a;100字說清哈曼曲線的Why和What 本文為短小精悍的音頻小知識總結&#xff0c;希望有用。 Why 音箱等大型外放設備是沒有哈曼曲線的哈曼曲線是為了解決近耳設備如耳機/助聽器&#xff0c;重放聲音時與聲源實際發聲舉例產生的聽感做衰減匹配也即沒有耳機的重…

免費利器:會議之眼一鍵生成論文功能火爆上線 助你快速起航

會議之眼 快訊 親愛的會議之眼粉絲們&#xff0c;你們是否曾經為了寫論文而徹夜苦思冥想&#xff1f;是否曾經為了找資料而焦頭爛額&#xff1f; 今天小編帶來了一個令人興奮的消息&#xff0c;那就是會議之眼網頁端平臺的全新功能——“一鍵生成論文”已經重磅上線啦&#x…

【計算機畢業設計】springboot房地產銷售管理系統的設計與實現

相比于以前的傳統手工管理方式&#xff0c;智能化的管理方式可以大幅降低房地產公司的運營人員成本&#xff0c;實現了房地產銷售的 標準化、制度化、程序化的管理&#xff0c;有效地防止了房地產銷售的隨意管理&#xff0c;提高了信息的處理速度和精確度&#xff0c;能夠及時、…