dubbo簡介、maven構建步驟、框架說明

簡介

官網:http://dubbo.io/
源碼下載:https://github.com/alibaba/dubbo
發佈包下載:http://repo1.maven.org/maven2/com/alibaba/dubbo/

DUBBO是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,是阿里巴巴SOA服務化治理方案的核心框架,每天爲2,000+個服務提供3,000,000,000+次訪問量支持,並被廣泛應用於阿里巴巴集團的各成員站點。

Dubbo是Alibaba開源的分佈式服務框架,它最大的特點是按照分層的方式來架構,使用這種方式可以使各個層之間解耦合(或者最大限度地松耦合)。從服務模型的角度來看,Dubbo採用的是一種非常簡單的模型,要麼是提供方提供服務,要麼是消費方消費服務,所以基於這一點可以抽象出服務提供方(Provider)和服務消費方(Consumer)兩個角色。關於註冊中心、協議支持、服務監控等內容。

什麼是RPC?

百度百科
這裏寫圖片描述

通過Maven構建dubbo

dubbo的主要模塊:
這裏寫圖片描述

雖然阿里已經給我們打包好了核心框架的jar包,但在實際開發過程中,核心框架、管理控制檯、簡易監控中心、簡易註冊中心可能我們都需要用到,而且業務需求可能要修改dubbo源碼,再次打包。基於以上原因我們需要構建dubbo。構建的過程還是有些講究的,在此記錄下maven構建的步驟,方便以後回顧。

源碼:dubbo-dubbo-2.5.3(包含依賴hessian-lite、opensesame)

1、先導入編譯依賴,再導入dubbo核心源碼到Eclipse
這裏寫圖片描述

2、安裝hessian-lite到本地倉庫
這裏寫圖片描述

4、安裝opensesame到本地倉庫
這裏寫圖片描述

5、構建dubbo
這裏寫圖片描述

構建完成:

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] dubbo-parent ....................................... SUCCESS [  0.561 s]
[INFO] dubbo-common ....................................... SUCCESS [  7.344 s]
[INFO] dubbo-container .................................... SUCCESS [  0.004 s]
[INFO] dubbo-container-api ................................ SUCCESS [  1.150 s]
[INFO] dubbo-container-spring ............................. SUCCESS [  0.538 s]
[INFO] dubbo-container-jetty .............................. SUCCESS [  0.430 s]
[INFO] dubbo-container-log4j .............................. SUCCESS [  0.412 s]
[INFO] dubbo-container-logback ............................ SUCCESS [  0.645 s]
[INFO] dubbo-remoting ..................................... SUCCESS [  0.003 s]
[INFO] dubbo-remoting-api ................................. SUCCESS [  3.842 s]
[INFO] dubbo-remoting-netty ............................... SUCCESS [  0.903 s]
[INFO] dubbo-remoting-mina ................................ SUCCESS [  0.657 s]
[INFO] dubbo-remoting-grizzly ............................. SUCCESS [  1.027 s]
[INFO] dubbo-remoting-p2p ................................. SUCCESS [  0.725 s]
[INFO] dubbo-remoting-http ................................ SUCCESS [  0.524 s]
[INFO] dubbo-remoting-zookeeper ........................... SUCCESS [  0.890 s]
[INFO] dubbo-rpc .......................................... SUCCESS [  0.003 s]
[INFO] dubbo-rpc-api ...................................... SUCCESS [  1.772 s]
[INFO] dubbo-rpc-default .................................. SUCCESS [  1.593 s]
[INFO] dubbo-rpc-injvm .................................... SUCCESS [  0.474 s]
[INFO] dubbo-rpc-rmi ...................................... SUCCESS [  0.463 s]
[INFO] dubbo-rpc-hessian .................................. SUCCESS [  0.828 s]
[INFO] dubbo-rpc-http ..................................... SUCCESS [  0.751 s]
[INFO] dubbo-rpc-webservice ............................... SUCCESS [  0.880 s]
[INFO] dubbo-cluster ...................................... SUCCESS [  1.941 s]
[INFO] dubbo-registry ..................................... SUCCESS [  0.005 s]
[INFO] dubbo-registry-api ................................. SUCCESS [  1.311 s]
[INFO] dubbo-monitor ...................................... SUCCESS [  0.004 s]
[INFO] dubbo-monitor-api .................................. SUCCESS [  0.516 s]
[INFO] dubbo-filter ....................................... SUCCESS [  0.003 s]
[INFO] dubbo-filter-validation ............................ SUCCESS [  0.708 s]
[INFO] dubbo-filter-cache ................................. SUCCESS [  0.603 s]
[INFO] dubbo-registry-default ............................. SUCCESS [  0.509 s]
[INFO] dubbo-monitor-default .............................. SUCCESS [  0.916 s]
[INFO] dubbo-registry-multicast ........................... SUCCESS [  0.576 s]
[INFO] dubbo-config ....................................... SUCCESS [  0.002 s]
[INFO] dubbo-config-api ................................... SUCCESS [  1.284 s]
[INFO] dubbo-config-spring ................................ SUCCESS [  0.930 s]
[INFO] dubbo-rpc-thrift ................................... SUCCESS [  1.700 s]
[INFO] dubbo-rpc-memcached ................................ SUCCESS [  0.523 s]
[INFO] dubbo-rpc-redis .................................... SUCCESS [  0.914 s]
[INFO] dubbo-registry-zookeeper ........................... SUCCESS [  0.584 s]
[INFO] dubbo-registry-redis ............................... SUCCESS [  0.996 s]
[INFO] dubbo .............................................. SUCCESS [10:57 min]
[INFO] dubbo-simple ....................................... SUCCESS [  0.004 s]
[INFO] dubbo-registry-simple .............................. SUCCESS [16:55 min]
[INFO] dubbo-monitor-simple ............................... SUCCESS [ 18.007 s]
[INFO] dubbo-admin ........................................ SUCCESS [  9.432 s]
[INFO] dubbo-demo ......................................... SUCCESS [  0.004 s]
[INFO] dubbo-demo-api ..................................... SUCCESS [  0.729 s]
[INFO] dubbo-demo-provider ................................ SUCCESS [ 13.662 s]
[INFO] dubbo-demo-consumer ................................ SUCCESS [ 13.786 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 29:29 min
[INFO] Finished at: 2017-03-01T15:03:02+08:00
[INFO] Final Memory: 78M/247M
[INFO] ------------------------------------------------------------------------

Dubbo框架說明

背景

這裏寫圖片描述

架構

這裏寫圖片描述

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

快速入門示例

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