Dubbo是什么
Dubbo是:
一款分布式服務(wù)框架
高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案
SOA服務(wù)治理方案
每天為2千多個(gè)服務(wù)提供大于30億次訪問量支持淤年,并被廣泛應(yīng)用于阿里巴巴集團(tuán)的各成員站點(diǎn)以及別的公司的業(yè)務(wù)中钧敞。
Provider: 暴露服務(wù)的服務(wù)提供方。?
Consumer: 調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方麸粮。?
Registry: 服務(wù)注冊(cè)與發(fā)現(xiàn)的注冊(cè)中心溉苛。?
Monitor: 統(tǒng)計(jì)服務(wù)的調(diào)用次數(shù)和調(diào)用時(shí)間的監(jiān)控中心。
調(diào)用流程?
0.服務(wù)容器負(fù)責(zé)啟動(dòng)弄诲,加載愚战,運(yùn)行服務(wù)提供者。?
1.服務(wù)提供者在啟動(dòng)時(shí)齐遵,向注冊(cè)中心注冊(cè)自己提供的服務(wù)凤巨。?
2.服務(wù)消費(fèi)者在啟動(dòng)時(shí),向注冊(cè)中心訂閱自己所需的服務(wù)洛搀。?
3.注冊(cè)中心返回服務(wù)提供者地址列表給消費(fèi)者敢茁,如果有變更,注冊(cè)中心將基于長(zhǎng)連接推送變更數(shù)據(jù)給消費(fèi)者留美。?
4.服務(wù)消費(fèi)者彰檬,從提供者地址列表中伸刃,基于軟負(fù)載均衡算法,選一臺(tái)提供者進(jìn)行調(diào)用逢倍,如果調(diào)用失敗捧颅,再選另一臺(tái)調(diào)用。?
5.服務(wù)消費(fèi)者和提供者较雕,在內(nèi)存中累計(jì)調(diào)用次數(shù)和調(diào)用時(shí)間碉哑,定時(shí)每分鐘發(fā)送一次統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心
對(duì)于服務(wù)提供方,它需要發(fā)布服務(wù)亮蒋,而且由于應(yīng)用系統(tǒng)的復(fù)雜性扣典,服務(wù)的數(shù)量、類型也不斷膨脹慎玖;?
對(duì)于服務(wù)消費(fèi)方贮尖,它最關(guān)心如何獲取到它所需要的服務(wù),而面對(duì)復(fù)雜的應(yīng)用系統(tǒng)趁怔,需要管理大量的服務(wù)調(diào)用湿硝。?
而且,對(duì)于服務(wù)提供方和服務(wù)消費(fèi)方來說润努,他們還有可能兼具這兩種角色关斜,即既需要提供服務(wù),有需要消費(fèi)服務(wù)铺浇。
通過將服務(wù)統(tǒng)一管理起來痢畜,可以有效地優(yōu)化內(nèi)部應(yīng)用對(duì)服務(wù)發(fā)布/使用的流程和管理。服務(wù)注冊(cè)中心可以通過特定協(xié)議來完成服務(wù)對(duì)外的統(tǒng)一随抠。
Dubbo提供的注冊(cè)中心有如下幾種類型可供選擇:
Multicast注冊(cè)中心
Zookeeper注冊(cè)中心
Redis注冊(cè)中心
Simple注冊(cè)中心
優(yōu)點(diǎn):
透明化的遠(yuǎn)程方法調(diào)用?
- 像調(diào)用本地方法一樣調(diào)用遠(yuǎn)程方法裁着;只需簡(jiǎn)單配置繁涂,沒有任何API侵入拱她。
軟負(fù)載均衡及容錯(cuò)機(jī)制?
可在內(nèi)網(wǎng)替代nginx lvs等硬件負(fù)載均衡器。
服務(wù)注冊(cè)中心自動(dòng)注冊(cè) & 配置管理?
-不需要寫死服務(wù)提供者地址扔罪,注冊(cè)中心基于接口名自動(dòng)查詢提供者ip秉沼。?
使用類似zookeeper等分布式協(xié)調(diào)服務(wù)作為服務(wù)注冊(cè)中心,可以將絕大部分項(xiàng)目配置移入zookeeper集群矿酵。
服務(wù)接口監(jiān)控與治理?
-Dubbo-admin與Dubbo-monitor提供了完善的服務(wù)接口管理與監(jiān)控功能唬复,針對(duì)不同應(yīng)用的不同接口,可以進(jìn)行 多版本全肮,多協(xié)議敞咧,多注冊(cè)中心管理。
缺點(diǎn):
只支持JAVA語(yǔ)言