Dubbo+zookeeper 最簡單的分佈式搭建

Dubbo+zookeeper 最簡單的分佈式搭建

大家好,我是Andy,那個永遠積極向上且自戀的Andy


介紹:本例採用 dubbo+zookeeper 搭建分佈式系統,環境 jdk1.8


運行介紹:啓動 zookeeper - 啓動服務提供者 - 啓動服務消費者 
整個項目的代碼已上傳到github,https://github.com/brotherAndy/dubbo,歡迎查看。


分佈式架構: 
1.當垂直應用越來越多,應用之間交互不可避免,將核心業務抽取出來,作爲獨立的服務,逐漸形成穩定的服務中心,前端應用能更快速的響應多變的市場需求。 
2.此時,用於提高業務複用及整合的 分佈式服務框架(RPC) 是關鍵。

Dubbo 是什麼

  • 一款分佈式服務框架
  • 高性能和透明化的RPC遠程服務調用方案
  • SOA服務治理方案

Dubbo 架構流程圖

這裏寫圖片描述

Provider:服務提供方 
Consumer:服務消費者 
Registry:註冊中心 
Monitor:統計服務調用次數和調用時間的監控中心

調用流程 
0.啓動服務提供者。 
1.服務提供者在啓動時,向註冊中心註冊自己提供的服務。 
2.服務消費者在啓動時,向註冊中心訂閱自己所需的服務。 
3.註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連接推送變更數據給消費者。 
4.服務消費者,從提供者地址列表中,基於軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。 
5.服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。

註冊中心 
服務提供方:針對所提供的服務到註冊中心發佈。 
服務消費方:到服務中心訂閱所需的服務。 
對於任何一方,不論服務提供方或者服務消費方都有可能同時兼具兩種角色,即需要提供服務也需要消費服務。

架構搭建案例

1.zookpeeper 安裝

去官網下載 zookpeeper

把包下載後,解壓到目錄,例如:D:\software\work\zookeeper (解壓後更名爲zookeeper) 
修改zoo_sample.cfg 文件名(D:\software\work\zookeeper\conf) 爲 zoo.cfg 
主要更改配置文件裏面的日誌目錄,如下: 
dataDir=D:\zookeeper\data 
dataLogDir=D:\zookeeper\log

啓動 
進入到bin目錄,並且啓動zkServer.cmd,如圖: 
zookeeper運行效果

2.創建maven工程

工程分爲4個結構

  • dubbo 工程,主工程,主要導入公共jar包等
  • dubbo-api 工程,公共接口
  • dubbo-provider 工程,服務提供者
  • dubbo-consumer-user 和 dubbo-consumer 工程,服務消費者 
    項目結構

(注:每個工程都是獨立的,通過maven 引入父子關係) 
1.創建dubbo 的maven 主工程 
創建步驟省略,主要導入相關jar包等,具體請查看給到源碼的pom.xml,此工程暫僅配置pom.xml,沒有其他操作

2.創建dubbo-api 的maven 接口工程 
主要定義接口,並配置好pom.xml 
api工程目錄user接口

3.創建dubbo-provider 的maven 工程 
服務提供者,實現公共接口的實現,此實現對消費者隱藏

加入公共接口所在的依賴 
工程依賴
接口實現 
user實現 
用Spring配置聲明服務 
Spring聲明服務
服務者啓動(前提啓動 zookeeper) 
服務者啓動

4.創建dubbo-consumer-user 的maven 工程(可以有多個consumer,配置跟上) 
服務消費者,實現公共接口的實現,調用服務

通過Spring引用服務 
服務引用
啓動consumer ,調用服務 
調用服務

5.運行項目,順序:zookeeper –> dubbo-provider –> dubbo-consumer-user

運行結果 
運行結果

3.dubbo-admin 搭建

提供界面化管理dubbo 服務

下載地址 
https://itmayun.ctfile.com/fs/3011962-230676583

下載後把war包放入tomcat的webapps目錄下,啓動tomcat

瀏覽器輸入:http://localhost:8080/dubbo-admin/ 
默認賬號: root 密碼:root

效果圖: 
服務列表 
dubbo-admin
服務詳細 
dubbo-admin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章