文章爲某馬程序員課件內容抽取,侵刪
什麼是SOA架構?
SOA是Service-Oriented Architecture的首字母簡稱,它是一種支持面向服務的架構樣式。從服務、基於服務開發和服務的結果來看,面向服務是一種思考方式。其實SOA架構更多應用於互聯網項目開發。
爲什麼互聯網項目會採用SOA架構呢?隨着互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分佈式服務架構以及流動計算架構勢在必行,迫切需一個治理系統確保架構有條不紊的演進。
Dubbox簡介
Dubbox 致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。簡單的說,dubbox就是個服務框架,如果沒有分佈式的需求,其實是不需要用的,只有在分佈式的時候,纔有dubbox這樣的分佈式服務框架的需求,並且本質上是個服務調用的東東,說白了就是個遠程服務調用的分佈式框架。
節點角色說明:
Provider: 暴露服務的服務提供方。
Consumer: 調用遠程服務的服務消費方。
Registry: 服務註冊與發現的註冊中心。
Monitor: 統計服務的調用次調和調用時間的監控中心。
Container: 服務運行容器。
調用關係說明:
0. 服務容器負責啓動,加載,運行服務提供者。
1. 服務提供者在啓動時,向註冊中心註冊自己提供的服務。
2. 服務消費者在啓動時,向註冊中心訂閱自己所需的服務。
3. 註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連接推送變更數據給消費者。
4. 服務消費者,從提供者地址列表中,基於軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。
5. 服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。
註冊中心Zookeeper簡介
註冊中心負責服務地址的註冊與查找,相當於目錄服務,服務提供者和消費者只在啓動時與註冊中心交互,註冊中心不轉發請求,壓力較小。
Zookeeper 在Linux系統的安裝
第一步:安裝 jdk(此步省略,我給大家提供的鏡像已經安裝好JDK)
第二步:把 zookeeper 的壓縮包(zookeeper-3.4.6.tar.gz)上傳到 linux 系統。
Alt+P 進入SFTP ,輸入put d:\zookeeper-3.4.6.tar.gz 上傳
第三步:解壓縮壓縮包 tar -zxvf zookeeper-3.4.6.tar.gz
第四步:進入 zookeeper-3.4.6 目錄,創建 data 文件夾。 mkdir data
第五步:進入conf目錄 ,把 zoo_sample.cfg 改名爲 zoo.cfg
cd conf
mv zoo_sample.cfg zoo.cfg
第六步:打開zoo.cfg , 修改 data 屬性:dataDir=/root/zookeeper-3.4.6/data
Zookeeper 服務啓動
進入bin目錄,啓動服務輸入命令 ./zkServer.sh start 輸出以下內容表示啓動成功
關閉服務輸入命令 ./zkServer.sh stop 輸出以下提示信息
查看狀態: ./zkServer.sh status
如果啓動狀態,提示
如果未啓動狀態,提示:
入門小Demo(項目去svn中找https://svnbucket.com/)
服務提供
pom.xml,web.xml,applicationContext.xml,接口及類
消費者
pom.xml,web.xml,applicationContext.xml,接口及類
注意:Service註解與原來不同,需要引入com.alibaba包下的,dubbo:annotation用於掃描@Service註解。
管理中心的部署
在開發時,需要知道註冊中心都註冊了哪些服務,以便我們開發和測試。我們可以通過部署一個管理中心來實現。其實管理中心就是一個web應用,部署到tomcat即可。
(1)編譯源碼,得到war包
資源中有個dubbox-master.zip ,這個是dubbox的源碼,我們可以使用maven命令編譯源碼得到“管理端”的war包,將此壓縮包解壓,在命令符下進入dubbo-admin目錄 ,輸入maven命令 mvn package -Dmaven.skip.test=true 如果你看到如下信息,就說明成功了
(2)進入target文件夾,你會看到一個dubbo-admin-2.8.4.war , 在linux服務器上安裝tomcat, 將此war包上傳到linux服務器的tomcat的webapps下。爲了訪問方便,你可以把版本號去掉。 啓動tomcat後自動解壓。
(3)如果你部署在zookeeper同一臺主機並且端口是默認的2181,則無需修改任何配置。如果不是在一臺主機上或端口被修改,需要修改WEB-INF下的dubbo.properties ,修改如下配置: dubbo.registry.address=zookeeper://127.0.0.1:2181 修改後重新啓動tomcat
(4)打開瀏覽器,輸入http://192.168.25.***:8080/dubbo-admin/ ,登錄用戶名和密碼均爲root 進入首頁。 (192.168.25.***:)是我部署的linux主機地址。
(5)啓動服務提供者工程,即可在服務治理-提供者查看到該服務。
點擊其中一條數據後可以查看詳情。
(6)啓動服務消費者工程,運行頁面,觀察“消費者”列表