Dubbo核心概念
?
?
?
節(jié)點(diǎn)角色規(guī)范
| Provider | 提供者公開遠(yuǎn)程服務(wù) |
| Consumer | 消費(fèi)者致電遠(yuǎn)程服務(wù) |
| Registry | 注冊(cè)表負(fù)責(zé)服務(wù)發(fā)現(xiàn)和配置 |
| Monitor | 監(jiān)視器計(jì)算服務(wù)調(diào)用的數(shù)量和耗時(shí) |
| Container | 容器管理服務(wù)的生命周期 |
服務(wù)關(guān)系
?
Dubbo具有以下功能:連接性,魯棒性,可伸縮性和可升級(jí)性。
?
?
連接性
- Register負(fù)責(zé)注冊(cè)和搜索服務(wù)地址(例如目錄服務(wù)),Provider并且Consumer僅在啟動(dòng)期間與注冊(cè)表交互,并且注冊(cè)表不會(huì)轉(zhuǎn)發(fā)請(qǐng)求,因此壓力較小
- “監(jiān)視器”負(fù)責(zé)計(jì)算服務(wù)調(diào)用的數(shù)量和耗時(shí),統(tǒng)計(jì)信息將首先在Provider和Consumer的內(nèi)存中匯總,然后發(fā)送到Monitor
- “提供商”將服務(wù)注冊(cè)到“注冊(cè)”,并將耗時(shí)的統(tǒng)計(jì)信息(不包括網(wǎng)絡(luò)開銷)報(bào)告給“監(jiān)控器”
- “消費(fèi)者”從中獲取服務(wù)提供商的地址列表,Registry根據(jù)LB算法直接致電提供商,向上報(bào)耗時(shí)的統(tǒng)計(jì)信息Monitor,其中包括網(wǎng)絡(luò)開銷
- 之間的連接Register,Provider并且Consumer是長(zhǎng)連接,Moniter是一個(gè)例外
- RegisterProvider通過長(zhǎng)連接意識(shí)到存在,當(dāng)斷開連接時(shí)Provider,Register會(huì)將事件推送到Consumer
- 它不影響已經(jīng)運(yùn)行的實(shí)例Provider和Consumer甚至所有Register和Monitor趴下,因?yàn)镃onsumer得到的緩存Provider上榜
- Register并且Monitor是可選的,Consumer可以Provider直接連接
?
?
堅(jiān)固性
- Monitor的停機(jī)時(shí)間不會(huì)影響使用情況,只會(huì)丟失一些采樣數(shù)據(jù)
- 當(dāng)數(shù)據(jù)庫(kù)服務(wù)器出現(xiàn)故障時(shí),Register可以通過檢查其緩存將服務(wù)Provider列表返回到Consumer其中,但是新服務(wù)器Provider無(wú)法注冊(cè)任何服務(wù)
- Register?是一個(gè)對(duì)等集群,當(dāng)任何實(shí)例出現(xiàn)故障時(shí),它將自動(dòng)切換到另一個(gè)集群
- 即使所有Register實(shí)例都發(fā)生故障,Provider并且Consumer仍然可以通過檢查其本地緩存來(lái)進(jìn)行通信
- 服務(wù)Provider是無(wú)狀態(tài)的,一個(gè)實(shí)例的停機(jī)時(shí)間不會(huì)影響使用情況
- Provider一個(gè)服務(wù)的所有s故障后,Consumer無(wú)法使用該服務(wù),并無(wú)限地重新連接以等待服務(wù)Provider恢復(fù)
?
?
可擴(kuò)展性
- Register?是一個(gè)可以動(dòng)態(tài)增加其實(shí)例的對(duì)等群集,所有客戶端將自動(dòng)發(fā)現(xiàn)新實(shí)例。
- Provider是無(wú)狀態(tài)的,它可以動(dòng)態(tài)地增加部署實(shí)例,并且注冊(cè)表會(huì)將新的服務(wù)提供者信息推送到Consumer。
可升級(jí)性
當(dāng)服務(wù)集群進(jìn)一步擴(kuò)展并且IT治理結(jié)構(gòu)進(jìn)一步升級(jí)時(shí),需要?jiǎng)討B(tài)部署,并且當(dāng)前的分布式服務(wù)體系結(jié)構(gòu)不會(huì)帶來(lái)阻力。這是未來(lái)可能的架構(gòu):
?
節(jié)點(diǎn)角色規(guī)范
| Deployer | 用于自動(dòng)服務(wù)部署的本地代理 |
| Repository | 該存儲(chǔ)庫(kù)用于存儲(chǔ)應(yīng)用程序包 |
| Scheduler | 調(diào)度程序會(huì)根據(jù)訪問壓力自動(dòng)增加或減少服務(wù)提供商 |
| Admin | 統(tǒng)一管理控制臺(tái) |
| Registry | 注冊(cè)表負(fù)責(zé)服務(wù)發(fā)現(xiàn)和配置 |
| Monitor | 監(jiān)控器計(jì)算服務(wù)呼叫時(shí)間和時(shí)間 |
總結(jié)
- 上一篇: Java—网络编程相关概念
- 下一篇: HTTP的长链接和短链接说明