一、Dubbo概述
1)概述
2)六大核心功能
裝飾者模式啸蜜,A服務(wù)調(diào)用B服務(wù)xx接口的業(yè)務(wù)方法時坑雅,在Dubbo中并不是直接調(diào)用,而是先調(diào)用Adapter衬横,再通過Adapter調(diào)用Wrapper裹粤,有多少Wrapper就包裝多少層,最里層的Wrapper才真正調(diào)用xx接口的業(yè)務(wù)方法蜂林。這樣可以在業(yè)務(wù)之前實現(xiàn)更多邏輯——業(yè)務(wù)遥诉、Adapter、Wrapper都是通過SPI機(jī)制使用噪叙,由于基于SPI文件的形式我們不需要動Dubbo的框架可以自己添加Adapter和Wrapper進(jìn)行增強(qiáng)
3)架構(gòu)和名詞解釋
SPI可以破壞雙親委派機(jī)制芝加,雙親委派機(jī)制一般指服務(wù)在找某個類的時候硅卢,一般先找App層的類加載器(對應(yīng)classpath,一般我們寫的類都屬于classpath)藏杖,App層通過findClass()方法找到直接返回将塑,找不到請求父加載器Ext層(Jre/lib/ext/*.jar),Ext層通過findClass()方法找到直接返回蝌麸,找不到再請求父加載器BootStrap層(Jre/lib/rt.jar)点寥,BootStrap層通過findClass()方法找到直接返回,找不到自己嘗試從rt.jar包中加載来吩,rt.jar找不到通知Ext層嘗試在Jre/lib/ext/*.jar中加載敢辩,?Jre/lib/ext/*.jar找不到通知App層在classpath中加載,classpath找不到再通知自定義類加載器(一般用不到)弟疆。雙親委派機(jī)制保證了核心的類不會被改變(比如自定義的String類加載不進(jìn)去戚长,即時包名也是java.lang也替換不了),缺點是加載有隔離性每一層只能加載自己路徑下的類
如下圖所示:
Comsumer本地緩存一份Provider列表怠苔,通過Registry的notify來更新列表
二同廉、搭建admin客戶端
三、Dubbo使用演示
1)通過API方式使用Dubbo
2)通過Spring整合Dubbo
3)Dubbo的相關(guān)特性
3.1)屬性配置優(yōu)先級
3.2)啟動時檢查
3.3)請求超時設(shè)置
3.4)重試次數(shù)
3.5)多版本控制
3.6)本地存根
4)通過Springboot整合Dubbo
5)Dubbo的高可用性
5.1)注冊中心宕機(jī)
5.2)負(fù)載均衡
5.3)zookeeper注冊中心