- 深度剖析ApacheDubbo核心技術(shù)內(nèi)幕
- 翟陸續(xù)
- 6字
- 2020-03-02 16:12:11
第1章 Dubbo基礎
1.1 初識Dubbo
整體來說,一個公司業(yè)務系統(tǒng)的演進流程基本上都是從單體應用到多體應用。業(yè)務系統(tǒng)為單體應用時,不同業(yè)務模塊的相互調(diào)用直接在本地JVM進程內(nèi)就可以完成;而變?yōu)槎鄠€應用時,相互之間進行通信的方式就不是簡單地進行本地調(diào)用了,因為不同業(yè)務模塊部署到了不同的JVM進程里,更常見的情況是部署到了不同的機器中,這時候,一個高效、穩(wěn)定的RPC遠程調(diào)用框架就變得非常重要。
Dubbo是阿里巴巴開發(fā)的一個開源的高性能的RPC調(diào)用框架,是一個致力于提供高性能和透明化的RPC遠程調(diào)用服務解決方案。作為阿里巴巴SOA服務化治理方案的核心框架,目前它已從Apache孵化器項目畢業(yè),其前景可謂無限光明。
本節(jié)概要介紹使用Dubbo構(gòu)建的分布式系統(tǒng)架構(gòu)中各個組件服務的作用以及相互關(guān)系,其中各個組件之間的關(guān)系如圖1.1所示。
圖1.1是Dubbo的架構(gòu)圖,其中:

圖1.1
· Provider為服務提供者集群,服務提供者負責暴露提供的服務,并將服務注冊到服務注冊中心。
· Consumer為服務消費者集群,服務消費者通過RPC遠程調(diào)用服務提供者提供的服務。
· Registry負責服務注冊與發(fā)現(xiàn)。
· Monitor為監(jiān)控中心,統(tǒng)計服務的調(diào)用次數(shù)和調(diào)用時間。
以上各個組件的調(diào)用關(guān)系如下:
· 服務提供方在啟動時會將自己提供的服務注冊到服務注冊中心。
· 服務消費方在啟動時會去服務注冊中心訂閱自己需要的服務的地址列表,然后服務注冊中心異步把消費方需要的服務接口的提供者的地址列表返回給服務消費方,服務消費方根據(jù)路由規(guī)則和設置的負載均衡算法選擇一個服務提供者IP進行調(diào)用。
· 監(jiān)控平臺主要用來統(tǒng)計服務的調(diào)用次數(shù)和調(diào)用耗時,即服務消費者和提供者在內(nèi)存中累計調(diào)用服務的次數(shù)和耗時,并每分鐘定時發(fā)送一次統(tǒng)計數(shù)據(jù)到監(jiān)控中心,監(jiān)控中心則使用數(shù)據(jù)繪制圖表來顯示。監(jiān)控平臺不是分布式系統(tǒng)必需的,但是這些數(shù)據(jù)有助于系統(tǒng)的運維和調(diào)優(yōu)。服務提供者和消費者可以直接配置監(jiān)控平臺的地址,也可以通過服務注冊中心獲取。
- C++案例趣學
- 數(shù)字媒體應用教程
- Microsoft Exchange Server PowerShell Cookbook(Third Edition)
- LabVIEW2018中文版 虛擬儀器程序設計自學手冊
- 跟“龍哥”學C語言編程
- Offer來了:Java面試核心知識點精講(原理篇)
- Ray分布式機器學習:利用Ray進行大模型的數(shù)據(jù)處理、訓練、推理和部署
- 編寫高質(zhì)量代碼:改善C程序代碼的125個建議
- 單片機應用技術(shù)
- FFmpeg入門詳解:音視頻原理及應用
- Building a Quadcopter with Arduino
- Linux Device Drivers Development
- .NET 3.5編程
- Building RESTful Python Web Services
- Building Serverless Architectures