簡單介紹 dubbo

Dubbo是一個開源分佈式服務框架,它最大的特點是按照分層的方式來架構,使用這種方式可以使各個層之間解耦合;從服務模型的角度來看,Dubbo採用的是一種非常簡單的模型,要麼是提供方提供服務,要麼是消費方消費服務,所以基於這一點可以抽象出服務提供方(Provider)和服務消費方(Consumer)兩個角色。

1、服務接口層(Service):該層是與實際業務邏輯相關的,根據服務提供方和服務消費方的業務設計對應的接口和實現。

2、配置層(Config):對外配置接口,以ServiceConfig和ReferenceConfig爲中心,可以直接new配置類,也可以通過spring解析配置生成配置類。

3、服務代理層(Proxy):服務接口透明代理,生成服務的客戶端Stub和服務器端Skeleton,以ServiceProxy爲中心,擴展接口爲ProxyFactory。

4、服務註冊層(Registry):封裝服務地址的註冊與發現,以服務URL爲中心,擴展接口爲RegistryFactory、Registry和RegistryService。可能沒有服務註冊中心,此時服務提供方直接暴露服務。

5、集羣層(Cluster):封裝多個提供者的路由及負載均衡,並橋接註冊中心,以Invoker爲中心,擴展接口爲Cluster、Directory、Router和LoadBalance。將多個服務提供方組合爲一個服務提供方,實現對服務消費方來透明,只需要與一個服務提供方進行交互。

6、監控層(Monitor):RPC調用次數和調用時間監控,以Statistics爲中心,擴展接口爲MonitorFactory、Monitor和MonitorService。

7、遠程調用層(Protocol):封將RPC調用,以Invocation和Result爲中心,擴展接口爲Protocol、Invoker和Exporter。Protocol是服務域,它是Invoker暴露和引用的主功能入口,它負責Invoker的生命週期管理。Invoker是實體域,它是Dubbo的核心模型,其它模型都向   它靠擾,或轉換成它,它代表一個可執行體,可向它發起invoke調用,它有可能是一個本地的實現,也可能是一個遠程的實現,也可能一個集羣實現。

8、信息交換層(Exchange):封裝請求響應模式,同步轉異步,以Request和Response爲中心,擴展接口爲Exchanger、ExchangeChannel、ExchangeClient和ExchangeServer。

9、網絡傳輸層(Transport):抽象mina和netty爲統一接口,以Message爲中心,擴展接口爲Channel、Transporter、Client、Server和Codec。

10、數據序列化層(Serialize):可複用的一些工具,擴展接口爲Serialization、 ObjectInput、ObjectOutput和ThreadPool。

具體作用場景可以做分佈式服務,實現負載均均衡,減輕服務器壓力;

發佈了44 篇原創文章 · 獲贊 107 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章