1. 程式人生 > >Dubbo學習筆記(1)

Dubbo學習筆記(1)

1.1 Dubbo介紹
官網:http://dubbo.io/
圖片描述
上面紅色框翻譯後:一個高新能的,基於Java的,開源的RPC框架
Dubbo是一個框架
Dubbo是一個分散式框架,致力於提供高新能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案(SOA:Service-Oriented Architecture 面向服務的架構。將應用程式的不同功能定義為獨立的服務,服務也稱為構建。服務之間通過介面和協議聯絡起來)
Dubbo是阿里巴巴SOA服務化治理方案的核心框架,每天為2,000+個服務提供3,000,000,000+次訪問量支援,並被廣泛應用於阿里巴巴集團的各成員站點:
1.2 Dubbo設計的知識點:


(1)、遠端呼叫:RMI、hessian、webservice、thrift
(2)、通訊互動:http、早期的mina、現在使用的netty
(3)、序列化:hessian2、java、json
(4)、容器:spring、jetty(web容器、伺服器,通tomcat)
(5)、多執行緒:非同步,執行緒池
(6)、負載均衡
(7)、註冊中心:zookeeper
(8)、採用spring配置方式,非侵入式。對應用沒有任何的API侵入
1.3、Dubbo能做什麼?
(1)、實現透明的遠端方法呼叫,就像呼叫本地方法一樣。可以忽略遠端呼叫的實現細節。簡單配置即可使用。
(2)、服務的自動註冊和服務的發現。通告註冊中心,服務實現動態管理(增減服務方)。呼叫服務的消費者無需寫死呼叫地址。
(3)、軟體的負載均衡實現和容錯機制,無需使用硬體,減低成本。
1.4、Dubbo服務的實現原理通訊機制

圖片描述
1.5、Dubbo支援的協議:
支援8種協議:dubbo,hessian,rmi,http,webservice,thirft,memcached,redis.
Dubbo官方推薦使用dubbo協議。dubbo協議預設埠為:20880
1.6、Dubbo協議
A、Dubbo協議的特點:
Dubbo協議採用單一長連線和NIO非同步通訊,適合於小資料量大併發的服務呼叫,以及服務消費者機器數遠大於服務提供者機器數的情況。
B、網路通訊:
Dubbo協議底層網路通訊預設使用的是netty,效能非常優秀,官方推薦使用。
C、不適合的地方:
Dubbo不適合傳送大資料量的服務,比如傳檔案,視訊等,除非請求量很低
D、使用Dubbo協議:

<dubbo:protocol name="dubbo" port="20880" />

1.7、長連線和短連線
Dubbo協議使用長連線:
圖片描述
Dubbo協議使用短連線:
圖片描述
長連線和短連線:
所謂長連線,指在一個連線上可以連續傳送多個數據包,在連線保持期間,如果沒有
資料包傳送,需要雙方發檢測包。短連線是指通訊雙方有資料互動時,就建立一個連線,資料傳送完成後,則斷開此連線,即每次連線只完成一項業務的傳送。
長連線多用於操作頻繁,點對點的通訊,而且連線數不能太多情況。。例如:資料庫
的連線用長連線。像 Web 網站的 http 服務一般都用短連結,因為長連線對於服務端來說會耗費一定的資源,而像 Web 網站頻繁的用,使用短連線會更省一些資源,併發量大,但每個使用者無需頻繁操作情況下需用短連好。
1.8、Dubbo的工作原理:
圖片描述
以上都是一些Dubbo的理論知識,如果需要Dubbo學習資源的可以找我要!