基礎)Dubbo 第二章 dubbo配置

2021-10-06 22:02:26 字數 2339 閱讀 9789

5、版本號

6、本地存根

jvm 啟動 -d 引數優先,這樣可以使使用者在部署和啟動時進行引數重寫,比如在啟動時需改變協議的埠。

xml 次之,如果在 xml 中有配置,則 dubbo.properties 中的相應配置項無效。

properties 最後,相當於預設值,只有 xml 沒有配置時,dubbo.properties 的相應配置項才會生效,通常用於共享公共配置,比如應用名。

呼叫一次,再重試幾次。如果呼叫a機器失敗,再重試a機器,如果再失敗,則重試其他機器。在冪等方法上可以設定重試次數,在非冪等方法上不能設定重試次數。這個與ng的重試次數的配置一樣,不要依賴ng的重試次數。一般新增不能重試,即設定為0。

啟動時檢查服務提供者是否存在。

單個介面配置

:reference inte***ce="com.foo.barservice" timeout="2000" check = "false">

或者統一配置

:consumer check = "false"/>

由於網路或服務端不可靠,會導致呼叫出現一種不確定的中間狀態(超時)。為了避免超時導致客戶端資源(執行緒)掛起耗盡,必須設定超時時間。預設是consumer的超時時間,預設時間是1000毫秒,並且可以明確某個方法的超時時間。

全域性超時配置

:consumer timeout="5000" />

指定介面以及特定方法超時配置

:reference inte***ce="com.foo.barservice" timeout="2000">

:method name="sayhello" timeout="3000" />

:reference>

全域性超時配置

:provider timeout="5000" />

指定介面以及特定方法超時配置

:provider inte***ce="com.foo.barservice" timeout="2000">

:method name="sayhello" timeout="3000" />

:provider>

dubbo推薦在provider上盡量多配置consumer端屬性:

1、作服務的提供者,比服務使用方更清楚服務效能引數,如呼叫的超時時間,合理的重試次數,等等

2、在provider配置後,consumer不配置則會使用provider的配置值,即provider配置可以作為consumer的預設值。否則,consumer會使用consumer端的全域性設定,這對於provider不可控的,並且往往是不合理的。

配置的覆蓋規則:

方法級配置別優於介面級別,即小scope優先

consumer端配置 優於 provider配置 優於 全域性配置,

最後是dubbo hard code的配置值(見配置文件)

當乙個介面實現,出現不相容公升級時,可以用版本號過渡,版本號不同的服務相互間不引用。可以實現灰度發布。

可以按照以下的步驟進行版本遷移:

在低壓力時間段,先公升級一半提供者為新版本

再將所有消費者公升級為新版本

然後將剩下的一半提供者公升級為新版本

老版本服務提供者配置:

:service inte***ce="com.foo.barservice" version="1.0.0" />

新版本服務提供者配置:

:service inte***ce="com.foo.barservice" version="2.0.0" />

老版本服務消費者配置:

:reference id="barservice" inte***ce="com.foo.barservice" version="1.0.0" />

新版本服務消費者配置:

:reference id="barservice" inte***ce="com.foo.barservice" version="2.0.0" />

如果不需要區分版本,可以按照以下的方式配置:

:reference id="barservice" inte***ce="com.foo.barservice" version="*" />

在遠端呼叫之前,先呼叫本地存根的**,校驗通過之後,再呼叫遠端介面。

第二章 演算法基礎

引言 演算法導論 在本章將向我們介紹乙個演算法設計和分析框架,在後續的章節也將在這個框架的基礎上來分許演算法。名詞解釋 1 偽 偽 就是以最清晰 最簡潔的表示方法來說明演算法,而忽略資料抽象 模組性和錯誤處理的問題 2 迴圈不變式 每次迴圈從陣列a中取出第j個元素插入有序數列a 1 j 1 然後遞增...

第二章 演算法基礎

2.1 插入排序 insertion sort 時間複雜度 o n 對於少量元素的排序,是乙個有效的演算法。為什麼叫插入排序呢?可以模擬撲克牌整牌 將未排序的數字通過遍歷插入到已排好序的數字中的對應位置 如何實現呢 num j 1 key 插入 for int i 1 i n i printf n ...

第二章基礎語法

using system using system.collections.generic using system.linq using system.text using system.threading.tasks 引用命名空間 namespace 2.1csharp程式結構 命名空間或者專案...