摘要:簡介是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的實現服務的輸出和輸入功能,可以和框架無縫集成。它提供了三大核心能力面向接口的遠程方法調用智能容錯和負載均衡服務自動注冊和發現。首先我們需要前往官網下載安裝包。
Dubbo 簡介
Dubbo是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的RPC實現服務的輸出和輸入功能,可以和Spring框架無縫集成。
它提供了三大核心能力:
面向接口的遠程方法調用
智能容錯和負載均衡
服務自動注冊和發現。
可以看出圖中存在著五種角色:
Provider:服務提供者
Consumer:服務消費者
Registry:服務注冊中心
Monitor:服務監控中心
Container:服務運行的容器
圖上的過程可以這么來解釋:
在容器(Container)啟動服務的提供者(Provider)
服務的提供者(Provider)將服務以接口的形式注冊到注冊中心(Registry)
服務的消費者(Consumer)向注冊中心訂閱服務
注冊中心向服務的消費者返回服務的提供者提供的服務接口(異步)
服務的消費者去調用服務的提供者(同步)
監控中心負責統計服務的調用次數和調用時間的日志服務。
這里我們采用 zookeeper 作為服務注冊中心,這里我查閱官方文檔發現 Redis 也可以作為Dubbo的注冊中心,只不過在應用中比較少見,而且官方文檔中也說明了:
如果我們想用的話,只需要把dubbo.registry.addrss的值改為redis://127.0.0.1:6379即可使用。
理論到這里,下面就讓我們來進入實戰吧~
zookeeper的安裝這里我是在 Mac OS 環境下進行安裝,你可以在本地安裝虛擬機來完成這個操作。
首先我們需要前往官網下載安裝包。
# 0. 解壓 tar -zxvf zookeeper-3.4.13.tar.gz # 1. 切換到解壓后的目錄下 cd zookeeper-3.4.13/ # 2. 建立data和logs目錄 mkdir data mkdir logs # 3. 復制zoo_sample.cfg 為 zoo.cfg cd conf/ cp zoo_sample.cfg zoo.cfg # 4. 修改配置 vi zoo.cfg dataDir=剛剛新建的data目錄的絕對路徑 logDir=剛剛新建的data目錄的絕對路徑 # 5. 啟動 cd ../bin ./zkServer.sh start # 6. 檢測是否啟動成功 ./zkServer.sh status實例 編寫Provider
引入我們項目需要的Maven依賴:
io.dubbo.springboot spring-boot-starter-dubbo 1.0.0
然后對注冊中心以及服務接口包的暴露的配置
spring.dubbo.application.name=provider spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 spring.dubbo.protocol.name=dubbo spring.dubbo.protocol.port=27899 spring.dubbo.scan=indi.viyoung.dubbo.provider.service
編寫Service接口和實現類:
public interface TestService { String test(); }
@Service public class TestServiceImpl implements TestService { @Override public String test() { return "Hello Wolrd"; } }
需要注意的是這里的Service注解必須是dubbo包下的喲,可千萬別寫錯了!
編寫Consumer同樣要引入依賴:
io.dubbo.springboot spring-boot-starter-dubbo 1.0.0
Consumer的配置的話比較少:
spring.dubbo.application.name=consumer spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
直接在Controller中引用
public class TestController { @Reference private TestService testService; @RequestMapping() public String hello() { return testService.test(); } }
注意這里的@Reference注解不要寫錯,應該是Dubbo包下的!
然后把項目啟動后,我們訪問一下:
Nice,訪問成功!
下面,我們來學習一下Dubbo-Admin的使用
Dubbo-AdminDubbo-Admin之前給我的感覺就是沒有UI的樣子:
大概就長這個樣子,賊丑,但是不知道啥時候悄悄摸摸的更新了一波,變得讓顏值控也是非常滿意,而且支持jar包啟動,不用再去多帶帶的安裝Tomcat~
git clone https://github.com/apache/incubator-dubbo-ops.git
首先從Git上把這個項目拉下來,用IDEA打開:
只需要添加一個端口號的配置,然后使用左側的maven打包工具打包:
然后去dubbo-admin-server的target的目錄下使用以下命令:
java -jar dubbo-admin-server-0.1.jar >run.log &
然后打開瀏覽器,輸入localhost:7070
對比之前的UI簡直強了無數倍,而且賊方便!
具體的功能大家可以跟著操作之后去探討,這里就不再展開來說了。
今天的文章就到這里,下面宣布一個好消息:
活動通知原定于粉絲達到一定數量后做送書活動回饋大家,由于本公號博主真愛技術佛系漲粉,無運營無套路,所以增粉速度超~級~慢~,原定目標短時間內無法達成,因此決定清明小長假過后就開啟送書活動,大家久等了!感謝大家的信任支持與相伴,筆芯~
掃碼即可參加活動
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76069.html
摘要:在之后,也終于發布了最新的版本。該版本距離上一次發布,過去了整整個月下面就隨我一起看看,這個大家期待已久的版本都有哪些內容值得我們關注。如果是用戶,同時也是阿里云這些產品的用戶,那么直接使用還是非常方便的。 在Nacos 1.0.0 Release之后,Spring Cloud Alibaba也終于發布了最新的版本。該版本距離上一次發布,過去了整整4個月!下面就隨我一起看看,這個大家期...
摘要:在服務治理方面,相較于而言,并不成熟。遺憾的是,往往被部分開發者片面地視作服務治理的框架,而非微服務基礎設施。因此,建議開發人員將或者遷移為服務。因此,下一步需要將其配置服務遠程。當服務提供方啟動后,下一步實現一個服務消費方。 原文鏈接:Dubbo Spring Cloud 重塑微服務治理,來自于微信公眾號:次靈均閣 摘要 在 Java 微服務生態中,Spring Cloud1 成為...
Github 地址:https://github.com/Snailclimb/springboot-integration-examples ,歡迎各位 Star。 目錄: 使用 SpringBoot+Dubbo 搭建一個簡單分布式服務 實戰之前,先來看幾個重要的概念 什么是分布式? 什么是 Duboo? Dubbo 架構 什么是 RPC? 為什么要用 Dubbo? 開始實戰 1 ...
摘要:文件引入相關依賴需要引入接口的相關依賴包。服務提供者,包含真正的服務實現代碼服務提供者啟動類編寫注意不要忘記加上注解開啟的自動配置。前言搭建一個SpringBoot+Dubbo+zookeeper的demo完整代碼見:github.com/Caizhenhao/…1. 安裝zookeeper環境搭建 zookeeper 之前要確保當前的服務器已經有 JDK 環境。我使用的是阿里云服務器注意:...
摘要:可簡單地認為它是的擴展,負載均衡自然成為不可或缺的特性。類似的特性在項目也有體現,它是另一種高性能代理的方案,提供服務發現健康和負載均衡。 Dubbo Cloud Native 實踐與思考 分享簡介 Cloud Native 應用架構隨著云技術的發展受到業界特別重視和關注,尤其是 CNCF(Cloud Native Computing Foundation)項目蓬勃發展之際。Dubbo...
閱讀 3074·2021-09-28 09:43
閱讀 906·2021-09-08 09:35
閱讀 1445·2019-08-30 15:56
閱讀 1189·2019-08-30 13:00
閱讀 2735·2019-08-29 18:35
閱讀 1835·2019-08-29 14:07
閱讀 3440·2019-08-29 13:13
閱讀 1336·2019-08-29 12:40