elasticsearch入門系列">elasticsearch入門系列
775
2022-05-29
Dubbo系列之常用配置用法簡介
1、配置原則
配置原則,引用官方的圖片:
JVM 啟動 -D 參數優先,這樣可以使用戶在部署和啟動時進行參數重寫,比如在啟動時需改變協議的端口。
XML 次之,如果在 XML 中有配置,則 dubbo.properties 中的相應配置項無效。
Properties 最后,相當于缺省值,只有 XML 沒有配置時,dubbo.properties 的相應配置項才會生效,通常用于共享公共配置,比如應用名。
2、重試次數
接口調用失敗,可通過 retries屬性 來設置重試次數(注意:不含第一次)
服務接口
1
或者@Server(retries=2)
引用服務
1
或者@Reference(retries=2)
全局設置
1
2
3
3、超時時間
為了避免超時導致客戶端資源(線程)因為接口調用時間過長而影響系統性能,需要配置必要的超時時間
provider配置
全局的配置
1
指定接口或者方法的配置
1
2
3
注解方式同理
consumer配置
全局超時配置
1
指定接口和方法
1
2
3
超時就會拋出異常:
從前面的分析可以看出,配置可以全局配置,也可以分為服務提供者和消費者進行配置,不過配置是有優先級的,按照優先級,dubbo官方給出了如下的順序,按照優先級從高到低分別為:
其實也就是官方歸納的:
方法級優先,接口級次之,全局配置再次之。
如果級別一樣,則消費方優先,提供方次之。
4、版本號
dubbo也提供了版本號的配置,目的是為了兼容舊接口,假如新開發了2.0版本的接口,而1.0接口還是有很多地方在調用的,或者是2.0接口還不太穩定等等情況,就可以使用版本設置,然后調用時候要加上版本號即可調用對應版本號的接口
官方的介紹是:
當一個接口實現,出現不兼容升級時,可以用版本號過渡,版本號不同的服務相互間不引用。
可以按照以下的步驟進行版本遷移:
在低壓力時間段,先升級一半提供者為新版本
再將所有消費者升級為新版本
然后將剩下的一半提供者升級為新版本
詳情參考官方文檔:http://dubbo.apache.org/zh-cn/docs/user/demos/multi-versions.html
1.0.0接口
1
2.0.0接口
1
調用時候同樣加上版本號即可
5、本地存根
引用官方的本地存根解釋:
遠程服務后,客戶端通常只剩下接口,而實現全在服務器端,但提供方有些時候想在客戶端也執行部分邏輯,比如:做 ThreadLocal 緩存,提前驗證參數,調用失敗后偽造容錯數據等等,此時就需要在 API 中帶上 Stub,客戶端生成 Proxy 實例,會把 Proxy 通過構造函數傳給 Stub [1],然后把 Stub 暴露給用戶,Stub 可以決定要不要去調 Proxy。
使用非常容易,加上stub屬性即可
1
官方的實例:
package com.foo; public class BarServiceStub implements BarService { private final BarService barService; // 構造函數傳入真正的遠程代理對象 public BarServiceStub(BarService barService){ this.barService = barService; } public String sayHello(String name) { // 此代碼在客戶端執行, 你可以在客戶端做ThreadLocal本地緩存,或預先驗證參數是否合法,等等 try { return barService.sayHello(name); } catch (Exception e) { // 你可以容錯,可以做任何AOP攔截事項 return "容錯數據"; } } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
詳情參考官方文檔:http://dubbo.apache.org/zh-cn/docs/user/demos/local-stub.html
dubbo的官方文檔還是比較詳細的,本博客僅僅列舉一小部分,內容肯定不夠詳細,具體使用請參考dubbo官方文檔:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html
Dubbo
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。