Dubbo API 筆記——配置參考

schema 配置參考

所有配置項分爲三大類

  • 服務發現:表示該配置項用於服務的註冊與發現,目的是讓消費方找到提供方
  • 服務治理:表示該配置項用於治理服務間的關係,或爲開發測試提供便利條件
  • 性能調優:表示該配置項用於調優性能,不同的選項對性能會產生影響

所有配置最終都將轉換爲 URL 表示,並由服務提供方生成,經註冊中心傳遞給消費方

    URL 格式: protocol://username:password@host:port/path?key=value&key=value

只有 group,interface,version 是服務的匹配條件,三者決定是不是同一個服務,其它配置項均爲調優和治理參數

dubbo:service

服務提供者暴露服務配置

屬性 對應URL參數 類型 是否必填 缺省值 作用
interface class 必填 服務發現 服務接口名
ref object 必填 服務發現 服務對象實現引用
version version string 可選 0.0.0 服務發現 服務版本,建議使用兩位數字版本,如:1.0,通常在接口不兼容時版本號才需要升級
group group string 可選 服務發現 服務分組,當一個接口有多個實現,可以用分組區分
path <path> string 可選 缺省爲接口名 服務發現 服務路徑(注意:1.0不支持自定義路徑,總是使用接口名,如果有1.0調 2.0,配置服務路徑可能不兼容
delay delay int 可選 0 性能調優 延遲註冊服務時間(毫秒),設爲-1時,表示延遲到Spring容器初始化完 成時暴露服務
timeout timeout int 可選 1000 性能調優 遠程服務調用超時時間(毫秒)
retries retries int 可選 2 性能調優 遠程服務調用重試次數,不包括第一 次調用,不需要重試請設爲0
connections connections int 可選 100 性能調優 對每個提供者的最大連接數,rmi、http、hessian等短連接協議表示限制連接數,dubbo等長連接協表示建立的長連接個數
loadbalance loadbalance string 可選 random 性能調優 負載均衡策略,可選值:random,roundrobin,leastactive,分別表示:隨機,輪循,最少活躍調用
async async boolean 可選 false 性能調優 是否缺省異步執行,不可靠異步,只是忽略返回值,不阻塞執行線程
stub stub class/boolean 可選 false 服務治理 設爲true,表示使用缺省代理類名,即:接口名 + Local後綴,服務接口客戶端本地代理類名,用於在客戶端執 行本地邏輯,如本地緩存等,該本地代理類的構造函數必須允許傳入遠程代理對象,構造函數如:public XxxServiceLocal(XxxService xxxService)
mock mock class/boolean 可選 false 服務治理 設爲true,表示使用缺省Mock類名,即:接口名 + Mock後綴,服務接口調用失敗Mock實現類,該Mock類必須有 一個無參構造函數,與Local的區別在於,Local總是被執行,而Mock只在出現非業務異常(比如超時,網絡異常等) 時執行,Local在遠程調用之前執行, Mock在遠程調用後執行
token token string/boolean 可選 false 服務治理 令牌驗證,爲空表示不開啓,如果爲true,表示隨機生成動態令牌,否則使用靜態令牌,令牌的作用是防止消費者繞過註冊中心直接訪問,保證註冊中心的授權功能有效,如果使用點對 調用,需關閉令牌功能
registry string 可選 缺省向所有registry註冊 配置關聯 向指定註冊中心註冊,在多個註冊中心時使用,值爲<dubbo:registry>的id屬性,多個註冊中心ID用逗號分隔,如果不想將該服務註冊到任何registry,可將值設爲N/A
provider string 可選 缺使用第一個provider配置 配置關聯 指定provider,值爲<dubbo:provider>的id屬性
deprecated deprecated boolean 可選 false 服務治理 服務是否過時,如果設爲true,消費方引用時將打印服務過時警告error日誌
dynamic dynamic boolean 可選 true 服務治理 服務是否動態註冊,如果設爲false,註冊後將顯示後disable狀態,需人工啓用,並且服務提供者停止時,也不啓用,並且服務提供者停止時,也不會自動取消冊,需人工禁用
accesslog accesslog string/boolean 可選 false 服務治理 設爲true,將向logger中輸出訪問日誌,也可填寫訪問日誌文件路徑,直接把訪問日誌輸出到指定文件
owner owner string 可選 服務治理 服務負責人,用於服務治理,請填寫負責人公司郵箱前綴
document document string 可選 服務治理 服務文檔URL
weight weight int 可選 性能調優 服務權重
executes executes int 可選 0 性能調優 服務提供者每服務每方法最大可並行執行請求數
proxy proxy string 可選 javassist 性能調優 生成動態代理方式,可選:jdk/javassist
cluster cluster string 可選 failover 性能調優 集羣方式,可選:failover/failfast/failsafe/failback/forking
listener exporter.listener string 可選 default 性能調優 服務提供方導出服務監聽器名稱,多個名稱用逗號分隔
protocol string 可選 配置關聯 使用指定的協議暴露服務,在多協議時使用,值爲<dubbo:protocol>的id屬性,多個協議ID用逗號分隔
layer layer string 可選 服務治理 服務提供者所在的分層。如:biz、 dao、intl:web、china:acton
register register boolean 可選 true 服務治理 該協議的服務是否註冊到註冊中心

dubbo:reference

服務消費者引用服務配置

屬性 對應URL參數 類型 是否必填 缺省值 作用
id string 必填 配置關聯 服務引用BeanId
interface class 必填 服務發現 服務接口名
version version string 可選 服務發現 服務版本,與服務提供者的版本一致
group group string 可選 服務發現 服務分組,當一個接口有多個實現,可以用分組區分,必需和服務提供方一致
timeout timeout long 可選 缺省使用<dubbo:consumer>的timeout 性能調優 服務方法調用超時時間(毫秒)
retries retries int 可選 缺省使用<dubbo:consumer>的retries 性能調優 遠程服務調用重試次數,不包括第一次調用,不需要重試請設爲0
connections connections int 可選 缺省使用<dubbo:consumer>的connections 性能調優 對每個提供者的最大連接數,rmi、http、hessian等短連接協議表示限制連接數,dubbo等長連接協表示建立的長連接個數
loadbalance loadbalance string 可選 缺省使用<dubbo:consumer>的loadbalance 性能調優 負載均衡策略,可選值:random,roundrobin,leastactive,分別表示:隨機,輪循,最少活躍調用
async async boolean 可選 缺省使用<dubbo:consumer> 性能調優 是否異步執行,不可靠異步,只是忽 略返回值,不阻塞執行線程
generic generic boolean 可選 缺省使用<dubbo:consumer>的generic 服務治理 是否缺省泛化接口,如果爲泛化接口,將返回GenericService
check check boolean 可選 缺省使用<dubbo:consumer>的check 服務治理 啓動時檢查提供者是否存在,true報錯,false忽略
url url string 可選 服務治理 點對點直連服務提供者地址,將繞過註冊中心
stub stub class/boolean 可選 服務治理 服務接口客戶端本地代理類名,用於在客戶端執行本地邏輯,如本地緩存等,該本地代理類的構造函數必須允許傳入遠程代理對象,構造函數如: public XxxServiceLocal(XxxService xxxService)
mock mock class/boolean 可選 服務治理 服務接口調用失敗Mock實現類名,該Mock類必須有一個無參構造函數,與 Local的區別在於,Local總是被執行,而Mock只在出現非業務異常(比如超時,網絡異常等)時執行,Local在遠程調用之前執行,Mock在遠程調用後執行
cache cache string/boolean 可選 服務治理 以調用參數爲key,緩存返回結果,可選:lru,threadlocal,jcache等
validation validation boolean 可選 服務治理 是否啓用JSR303標準註解驗證,如果啓用,將對方法參數上的註解進行校驗
proxy proxy boolean 可選 javassist 性能調優 客戶端傳輸類型設置,如Dubbo協議的netty或mina
client client string 可選 性能調優 客戶端傳輸類型設置,如Dubbo協議的netty或mina
registry string 可選 缺省將從所有註冊中心獲取服務列表後合併結果 配置關聯 從指定註冊中心註冊獲取服務列表,在多個註冊中心時使用,值爲<dubbo:registry>的id屬性,多個註冊中心ID用逗號分隔
owner owner string 可選 服務治理 調用服務負責人,用於服務治理,請填寫負責人公司郵箱前綴
actives actives int 可選 0 性能調優 每服務消費者每服務每方法最大併發調用數
cluster cluster string 可選 failover 性能調優 集羣方式,可選:failover/failfast/failsafe/failback/forking
filter reference.filter string 可選 default 性能調優 服務消費方遠程調用過程攔截器名稱,多個名稱用逗號分隔
listener invoker.listener string 可選 default 性能調優 服務消費方引用服務監聽器名稱,多個名稱用逗號分隔
layer layer string 可選 false 服務治理 服務調用者所在的分層。如:biz、dao、intl:web、china:acton
init init boolean 可選 false 性能調優 是否在afterPropertiesSet()時飢餓初始化引用,否則等到有人注入或引用該 實例時再初始化
protocol protocol string 可選 服力治理 只調用指定協議的服務提供方,其它協議

dubbo:protocol

服務提供者協議配置,如果需要支持多協議,可以聲明多個 <dubbo:protocol> 標籤,並在 <dubbo:service> 中通過 protocol 屬性指定使用的協議

屬性 對應URL參數 類型 是否必填 缺省值 作用
id string 可選 dubbo 配置關聯 協議BeanId,可以在<dubbo:service protocol=”“>中引用此ID,如果ID不填,缺省和name屬性值一樣,重複則 在name後加序號
name <protocol> string 必填 dubbo 性能調優 協議名稱
port <port> int 可選 dubbo協議缺省端口爲20880, rmi協議缺省端 口爲1099,http 和hessian協議 缺省端口爲80; 如果配置爲-1 或者沒有配置port,則會分配一個沒有被佔用的端口。Dubbo 2.4.0+,分配的 端口在協議缺省端口的基礎上增長,確保端口段可控 服務發現 服務端口
host <host> string 可選 自動查找本機IP 服務發現 -服務主機名,多網卡選擇或指定VIP及域名時使用,爲空則自動查找本機IP,-建議不要配置,讓Dubbo自動獲取本機IP
threadpool threadpool string 可選 fixed 性能調優 線程池類型,可選:fixed/cached
threads threads int 可選 100 性能調優 服務線程池大小(固定大小)
iothreads threads int 可選 cpu個數+1 性能調優 io線程池大小(固定大小)
accepts accepts int 可選 0 性能調優 服務提供方最大可接受連接數
payload payload int 可選 88388608(=8M) 性能調優 請求及響應數據包大小限制,單位:字節
codec codec string 可選 dubbo 性能調優 協議編碼方式
serialization serialization string 可選 dubbo協議缺省爲hessian2,rmi協議缺省爲java,http協議 缺省爲json 性能調優 協議序列化方式,當協議支持多種序列化方式時使用,比如:dubbo協議的dubbo,hessian2,java,compactedjava,以及http協議的json等
accesslog accesslog string/boolean 可選 服務治理 設爲true,將向logger中輸出訪問日誌,也可填寫訪問日誌文件路徑,直接把訪問日誌輸出到指定文件
path <path> string 可選 服務發現 提供者上下文路徑,爲服務path的前綴
transporter transporter string 可選 dubbo協議缺省爲netty 性能調優 協議的服務端和客戶端實現類型,比如:dubbo協議的mina,netty等,可以分拆爲server和client配置
server server string 可選 dubbo協議缺省爲netty,http協議缺省爲servlet 性能調優 協議的服務器端實現類型,比如:dubbo協議的mina,netty等,http協議的jetty,servlet等
client client string 可選 dubbo 協議缺省 爲netty 性能調優
dispatcher dispatcher string 可選 dubbo協議缺省爲all 性能 協議的消息派發方式,用於指定線程模型,比如:dubbo協議的all,direct,message,execution,connection等
queues queues int 可選 0 性能調優 線程池隊列大小,當線程池滿時,排隊等待執行的隊列大小,建議不要設置, 當線程程池時應立即失敗,重試其它服 務提供機器,而不是排隊,除非有特殊 需求
charset charset string 可選 UTF-8 性能調優 序列化編碼
buffer buffer int 可選 8192 性能調優 網絡讀寫緩衝區大小
heartbeat heartbeat int 可選 0 性能調優 心跳間隔,對於長連接,當物理層斷開時,比如拔網線,TCP的FIN消息來不及發送,對方收不到斷開事件,此時需 要心跳來幫助檢查連接是否已斷開
telnet telnet string 可選 服務治理 所支持的telnet命令,多個命令用逗號分隔
register register boolean true服務治理 該協議的服務是否註冊到註冊中心
contextpath contextpath string 可選 缺省爲空串 服務治理

dubbo:registry

註冊中心配置,如果有多個不同的註冊中心,可以聲明多個 <dubbo:registry> 標籤,並在 <dubbo:service> 或 <dubbo:reference> 的 registry 屬性指定使用的註冊中心

屬性 對應URL參數 類型 是否必填 缺省值 作用
id string 可選 配置關聯 註冊中心引用BeanId,可以在 <dubbo:service registry=”“>或 <dubbo:reference registry=”“>中引用此ID
address <host:port> string 必填 服務發現 註冊中心服務器地址,如果地址沒有端口缺省爲9090,同一集羣內的多個地址用逗號分隔,如:ip:port,ip:port,不同集羣的註冊中心,請配置多個 <dubbo:registry> 標籤
protocol <protocol> string 可選 dubbo 服務發現 注同中心地址協議,支持dubbo, http, local三種協 議,分別表示, dubbo地址,http 地址,本地註冊 中心
port <port> int 可選 9090 服務發現 註冊中心缺省端口,當address沒有帶端口時使用此端口做爲缺省 值
username <username> string 可選 服務治理 登錄註冊中心用戶名,如果註冊中心不需要驗證可不填
password <password> string 可選 服務治理 登錄註冊中心密碼,如果註冊中心不需要驗證可不填
transport registry.transporter string 可選 netty 性能調優 網絡傳輸方式,可選mina,netty
timeout registry.timeout int 可選 5000 性能調優 註冊中心請求超時時間(毫秒)
session registry.session int 可選 60000 性能調優 註冊中心會話超時時間(毫秒),用於檢測提供者非 正常斷線後的髒數據,比如用心跳檢測的實現,此時間就是心跳間隔,不同註冊中心實現不一樣
file registry.file string 可選 服務治理 使用文件緩存注 冊中心地址列表及服務提供者列表,應用重啓時將基於此文件恢復,注意:兩個註冊中心不能使用同一文件存儲
wait registry.wait int 可選 0 性能調優 停止時等待通知完成時間(毫秒)
check check boolean 可選 true服務治理 註冊中心不存在時,是否報錯
register register boolean 可選 true 服務治理 是否向此註冊中心註冊服務,如果設爲false,將只訂閱,不註冊
subscribe subscribe boolean 可選 true 服務治理 是否向此註冊中心訂閱服務,如果設爲false,將只註冊,不訂閱
dynamic dynamic boolean 可選 true 服務治理 服務是否動態註冊,如果設爲 false,註冊後將顯示後disable狀態,需人工啓用,並且服務提供者停止時,也不會自動取消冊,需人工禁用

dubbo:monitor

監控中心配置

屬性 對應URL參數 類型 是否必填 缺省值 作用
protocol protocol string 可選 dubbo 服務治理 監控中心協議,如果爲protocol=”registry”,表示從註冊中心發現監控中心地址,否則直連監控中心
address <url> string 可選 N/A 服務治理 直連監控中心服務器地址,address=”10.20.130.230:12080”

dubbo:application

應用信息配置

屬性 對應URL參數 類型 是否必填 缺省值 作用
name application string 必填 服務治理 當前應用名稱,用於註冊中心計算應用間依賴關係,注意:消費者和提供者應用名不要一樣,此參數不是匹配條件,你當前項目叫什麼名字就填什麼,和提供者消費者角色無關,比如:kylin應用調用了morgan應用的服務,則kylin項目配成kylin,morgan項目配成morgan,可能kylin也提供其它服務給別人使用,但kylin項目永遠配成kylin,這樣註冊中心將顯示kylin依賴於morgan
version application.version string 可選 服務治理 當前應用的版本
owner owner string 可選 服務治理 應用負責人,用於服務治理,請填寫負責人公司郵箱前綴
organization organization string 可選 服務治理 組織名稱(BU或部門),用於註冊中心區分服務來源,此配置項建議不要使用autoconfig,直接寫死在配 置中,比如 china,intl,itu,crm,asc,dw,aliexpress 等
architecture architecture string 可選 服務治理 用於服務分層對應的架構。如,intl、china。不同的架構使用不同的分層
environment environment string 可選 服務治理 應用環境,如: develop/test/product,不同環境使 用不同的缺省值,以及作爲只用於開發測試功能的限制條件
compiler compiler string 可選 javassist 性能優化 Java字節碼編譯器,用於動態類的生成,可選:jdk或javassist
logger logger string 可選 slf4j 性能優化 日誌輸出方式,可選: slf4j,jcl,log4j,jdk

dubbo:module

模塊信息配置

屬性 對應URL參數 類型 是否必填 缺省值 作用
name module string 必填 服務治理 當前模塊名稱,用於註冊中心計算模塊間依賴關係
version module.version string 可選 服務治理 當前模塊的版本
owner owner string 可選 服務治理 模塊負責人,用於服務治理,請填 寫負責人公司郵箱前綴
organization organization string 可選 服務治理 組織名稱(BU或部門),用於註冊中心區分服務來源,此配置項建議不要使用autoconfig,直接寫死在配 置中,比如 china,intl,itu,crm,asc,dw,aliexpress 等

dubbo:provider

服務提供者缺省值配置,同時該標籤爲 <dubbo:service> 和 <dubbo:protocol> 標籤的缺省值設置

屬性 對應URL參數 類型 是否必填 缺省值
id string 可選 dubbo
protocol <protocol> string 可選 dubbo
host <host> string 可選 自動查找本機IP
threads threads int 可選 100
payload payload int 可選 88388608(=8M)
path <path> string 可選
server server string 可選 dubbo協議缺省 爲netty,http協議缺省爲servlet
client client string 可選 dubbo協議缺省 爲netty
codec codec string 可選 dubbo
serialization serialization string 可選 dubbo協議缺省爲hessian2, rmi協議缺省爲java,http協議缺省爲json
default boolean 可選 false
filter service.filter string 可選
listener exporter.listener string 可選
threadpool threadpool string 可選 fixed
accepts accepts int 可選 0
version version string 可選 0.0.0
group group string 可選
delay delay int 可選 0
timeout default.timeout int 可選 1000
retries default.retries int 可選 2
connections default.connections int 可選 0
loadbalance default.loadbalance string 可選 random
async default.async boolean 可選 false
stub stub boolean 可選 false
mock mock boolean 可選 false
token token boolean 可選 false
registry registry string 可選 缺省向所有registry註冊
dynamic dynamic boolean 可選 true
accesslog accesslog string/boolean 可選 false
owner owner string 可選
document document string 可選
weight weight int 可選
executes executes int 可選 0
actives default.actives int 可選 0
proxy proxy string 可選 javassist
cluster default.cluster string 可選 failover
deprecated deprecated boolean 可選 false
queues queues int 可選 0
charset charset string 可選 UTF-8
buffer buffer int 可選 8192
iothreads iothreads int 可選 CPU+1
telnet telnet string 可選
<dubbo:service> contextpath contextpath String 可選
layer layer string 可選

dubbo:consumer

服務消費者缺省值配置,同時該標籤爲 <dubbo:reference> 標籤的缺省值設置

屬性 對應URL參數 類型 是否必填 缺省值 作用
timeout default.timeout int 可選 1000 性能調優 遠程服務調用超時時間(毫秒)
retries default.retries int 可選 2 性能調優 遠程服務調用重試次數,不包括第一次調用,不需要重試請設爲0
loadbalance default.loadbalance string 可選 random 性能調優 負載均衡策略,可選值:random,roundrobin,leastactive,分別表示:隨機,輪循,最少活躍調用
async default.async boolean 可選 false 性能調優 是否缺省異步執行,不可靠異步,只是忽略返回值,不阻塞執行線程
connections default.connections int 可選 100 性能調優 每個服務對每個提供者的最大連接數,rmi、http、hessian等短連接協議支持此配置,dubbo協議長連接不支持此配置
generic generic boolean 可選 false 服務治理 是否缺省泛化接口,如果爲泛化接口,將返回GenericService
check check boolean 可選 true 服務治理 啓動時檢查提供者是否存在,true報錯,false忽略
proxy proxy string 可選 javassist 性能調優 生成動態代理方式,可選: jdk/javassist
owner owner string 可選 服務治理 調用服務負責人,用於服務治理,請填寫負責人公司郵箱前綴
actives default.actives int 可選 0 性能調優 每服務消費者每服務每方法最大併發調用數
cluster default.cluster string 可選 failover 性能調優 集羣方式,可選:failover/failfast/failsafe/failback/forking
filter reference.filter string 可選 性能調優 服務消費方遠程調用過程攔截器名稱,多個名稱用逗號分隔
listener invoker.listener string 可選 性能調優 服務消費方引用服務監聽器名稱,多個名稱用逗號分隔
registry string 可選 缺省向所有 registry 註冊 配置關聯 向指定註冊中心註冊,在多個註冊中心時使用,值爲<dubbo:registry>的id屬性,多個註冊中心ID用逗號分隔,如果不想將該服務註冊到任何registry,可將值設爲N/A
layer layer string 可選 服務治理 服務調用者所在的分層。如:biz、dao、intl:web、china:acton
init init boolean 可選 false 性能調優 是否在afterPropertiesSet()時飢餓初始化引用,否則等到有人注入或引用該實例時再初始化
cache cache string/boolean 可選 服務治理 以調用參數爲key,緩存返回結果,可選:lru, threadlocal, jcache等
validation validation boolean 可選 服務治理 是否啓用JSR303標準註解驗證,如果啓用,將對方法參數上的註解進行校驗

dubbo:method

方法級配置,同時該標籤爲 <dubbo:service> 或 <dubbo:reference> 的子標籤,用於控制到方法級

<dubbo:reference interface="com.xxx.XxxService">                
    <dubbo:method name="findXxx" timeout="3000" retries="2" />
</dubbo:reference>
屬性 對應URL參數 類型 是否必填 缺省值
name string 必填
timeout <metodName>.timeout int 可選 缺省爲的timeout
retries <metodName>.retries int 可選 缺省爲 <dubbo:reference> 的retries
loadbalance <metodName>.loadbalance string 可選 缺省爲的 loadbalance
async <metodName>.async boolean 可選 缺省爲 <dubbo:reference> 的async
sent <methodName>.sent boolean 可選 true
actives <metodName>.actives int 可選 0
executes <metodName>.executes int 可選 0
deprecated <methodName>.deprecated boolean 可選 false
sticky <methodName>.sticky boolean 可選 false
return <methodName>.return boolean 可選 true
oninvoke attribute屬性,不在URL中體現 String 可選
onreturn attribute屬性,不在URL中體現 String 可選
onthrow attribute屬性,不在URL中體現 String 可選
cache <methodName>.cache string/boolean 可選
validation <methodName>.validation boolean 可選

dubbo:argument

方法參數配置,該標籤爲 <dubbo:method> 的子標籤,用於方法參數的特徵描述

<dubbo:method name="findXxx" timeout="3000" retries="2">
    <dubbo:argument index="0" callback="true" /> 
</dubbo:method>
屬性 對應URL參數 類型 是否必填 缺省值 作用 描述 兼容性
index int 必填 標識 方法名 2.0.6 以上版本
type String 與 index 二選一 標識 通過參數類型查找參數的 index 2.0.6 以上版本
callback <metodName><index>.retries boolean 可選 服務治理 參數是否爲callback接口,如果爲callback,服務提供方將生成反向代理,可以從服務提供方反向調用消費方,通常用於事件推送 2.0.6以上版本

dubbo:parameter

選項參數配置,該標籤爲 <dubbo:protocol> 或 <dubbo:service> 或 <dubbo:provider> 或 <dubbo:reference> 或 <dubbo: consumer> 的子標籤,用於配置自定義參數,該配置項將作爲擴展點設置自定義參數使用

<dubbo:protocol name="napoli">              
    <dubbo:parameter key="http://10.20.160.198/wiki/display/dubbo/napoli.queue.name" value="xxx" />
</dubbo:protocol>
屬性 對應URL參數 類型 是否必填 缺省值 作用 描述 兼容性
key key string 必填 服務治理 路由參數鍵 2.0.0以上版本
value value string 必填 服務治理 路由參數值 2.0.0以上版本
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章