Dubbo常用的xml配置


所有配置項分為三大類:

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

所有配置最終都將轉換為 URL表示,並由服務提供方生成,經注冊中心傳遞給消費方,各屬性對應 URL 的參數。

  1. XML Schema: http://dubbo.apache.org/schema/dubbo/dubbo.xsd
  2. 注意:只有 group,interface,version 是服務的匹配條件,三者決定是不是同一個服務,其它配置項均為調優和治理參數
  3. URL 格式:protocol://username:password@host:port/path?key=value&key=value

xml schema示例:

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
   
</beans>

dubbo:application

應用信息配置。對應的配置類:org.apache.dubbo.config.ApplicationConfig

常用的配置:

1)name

當前應用名稱,用於注冊中心計算應用間依賴關系。你當前項目叫什么名字就填什么。

dubbo:service

服務提供者暴露服務配置。對應的配置類:org.apache.dubbo.config.ServiceConfig。

示例:

<bean id="demoService" class="org.apache.dubbo.samples.basic.impl.DemoServiceImpl"/>
<dubbo:service interface="org.apache.dubbo.samples.basic.api.DemoService" ref="demoService"/>

常用的配置:

1)interface

必填。作用是服務發現。

服務接口名。

2)ref

必填。作用是服務發現。

服務對象實現引用。

3)group

可選。作用是服務發現。

服務分組,當一個接口有多個實現,可以用分組區分。

4)delay

可選。作用是性能調優。

延遲注冊服務時間(毫秒) ,設為-1時,表示延遲到Spring容器初始化完成時暴露服務。默認是0。

5)timeout

可選。作用是性能調優。

遠程服務調用超時時間(毫秒)。默認是1000。

6)retries

可選。作用是性能調優。

遠程服務調用重試次數,不包括第一次調用,不需要重試請設為0。默認是2。

7)connections

可選。作用是性能調優。

對每個提供者的最大連接數,rmi、http、hessian等短連接協議表示限制連接數,dubbo等長連接協表示建立的長連接個數。默認是100。

8)loadbalance

可選。作用是性能調優。

負載均衡策略,可選值:random,roundrobin,leastactive,分別表示:隨機,輪詢,最少活躍調用。默認是random。

9)registry

可選。作用是配置關聯。

向指定注冊中心注冊,在多個注冊中心時使用,值為<dubbo:registry>的id屬性,多個注冊中心ID用逗號分隔,如果不想將該服務注冊到任何registry,可將值設為N/A。默認是向所有registry注冊。

10)provider

可選。作用是配置關聯。

指定provider,值為<dubbo:provider>的id屬性。默認是第一個provider配置。

11)accesslog

可選。作用是服務治理。

設為true,將向logger中輸出訪問日志,也可填寫訪問日志文件路徑,直接把訪問日志輸出到指定文件。默認值是false。

12)weight

可選。作用是性能調優。

服務權重

13)executes

可選。作用是性能調優。

服務提供者每服務每方法最大可並行執行請求數。

14)cluster

可選。作用是性能調優。

集群方式,可選:failover/failfast/failsafe/failback/forking。默認是failover。

15)filter

可選。作用是性能調優。

服務提供方遠程調用過程攔截器名稱,多個名稱用逗號分隔。

16)listener

可選。作用是性能調優。

服務提供方導出服務監聽器名稱,多個名稱用逗號分隔。

17)protocol

可選。作用是配置關聯。

使用指定的協議暴露服務,在多協議時使用,值為<dubbo:protocol>的id屬性,多個協議ID用逗號分隔。

18)register

可選。作用是服務治理。

該協議的服務是否注冊到注冊中心。默認是true。

dubbo:reference

服務消費者引用服務配置。對應的配置類: org.apache.dubbo.config.ReferenceConfig。

示例:

<!--配置代理-->
<dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.samples.basic.api.DemoService"/>

常用的配置:

1)id

必填。

服務引用BeanId(類似Spring中的beanId)。

2)interface

必填。作用是服務發現。

服務接口名。

3)group

可選。作用是服務發現。

服務分組,當一個接口有多個實現,可以用分組區分,必需和服務提供方一致。

4)timeout

可選。作用是性能調優。

服務方法調用超時時間(毫秒)。默認是<dubbo:consumer>的timeout。

5)retries

可選。作用是性能調優。

遠程服務調用重試次數,不包括第一次調用,不需要重試請設為0。默認是<dubbo:consumer>的retries。

6)connections

可選。作用是性能調優。

對每個提供者的最大連接數,rmi、http、hessian等短連接協議表示限制連接數,dubbo等長連接協表示建立的長連接個數。默認是<dubbo:consumer>的connections。

7)loadbalance

可選。作用是性能調優。

負載均衡策略,可選值:random,roundrobin,leastactive,分別表示:隨機,輪詢,最少活躍調用。默認是<dubbo:consumer>的loadbalance。

8)check

可選。作用是服務治理。

啟動時檢查提供者是否存在,true報錯,false忽略。默認是<dubbo:consumer>的check。

9)cache

可選。作用是服務治理。

以調用參數為key,緩存返回結果,可選:lru, threadlocal, jcache等。

10)validation

可選。作用是服務治理。

是否啟用JSR303標准注解驗證,如果啟用,將對方法參數上的注解進行校驗。

11)actives

可選。作用是性能調優。

每服務消費者每服務每方法最大並發調用數。默認是0。

12)cluster

可選。作用是性能調優。

集群方式,可選:failover/failfast/failsafe/failback/forking。默認是failover。

13)filter

可選。作用是性能調優。

服務提供方遠程調用過程攔截器名稱,多個名稱用逗號分隔。

14)listener

可選。作用是性能調優。

服務提供方導出服務監聽器名稱,多個名稱用逗號分隔。

dubbo:protocol

服務提供者協議配置。對應的配置類: org.apache.dubbo.config.ProtocolConfig。同時,如果需要支持多協議,可以聲明多個 <dubbo:protocol> 標簽,並在 <dubbo:service> 中通過 protocol 屬性指定使用的協議。

常用的配置:

1)name

必填。

協議名稱。默認是dubbo。

2)port

服務端口。

dubbo協議缺省端口為20880,rmi協議缺省端口為1099,http和hessian協議缺省端口為80;如果沒有配置port,則自動采用默認端口,如果配置為-1,則會分配一個沒有被占用的端口。Dubbo 2.4.0+,分配的端口在協議缺省端口的基礎上增長,確保端口段可控。

3)threadpool

可選。作用是性能調優。

線程池類型,可選:fixed/cached。默認是fixed。

4)threads

可選。作用是性能調優。

服務線程池大小(固定大小)。默認是200。

5)iothreads

可選。作用是性能調優。

io線程池大小(固定大小)。默認是cpu個數+1。

6)accepts

可選。作用是性能調優。

服務提供方最大可接受連接數。默認是0。

7)payload

可選。作用是性能調優。

請求及響應數據包大小限制,單位:字節。默認是8388608(=8M)。

8)serialization

可選。作用是性能調優。

協議序列化方式,當協議支持多種序列化方式時使用,比如:dubbo協議的dubbo,hessian2,java,compactedjava,以及http協議的json等。

dubbo協議缺省為hessian2,rmi協議缺省為java,http協議缺省為json。

9)buffer

可選。作用是性能調優。

網絡讀寫緩沖區大小。默認是8192。

dubbo:method

方法級配置。對應的配置類: org.apache.dubbo.config.MethodConfig。同時該標簽為 <dubbo:service> 或 <dubbo:reference> 的子標簽,用於控制到方法級。

常用的配置:

1)name

必填。方法名。

2)timeout

可選。作用是性能調優。

方法調用超時時間(毫秒)。

3)retries

可選。作用是性能調優。

遠程服務調用重試次數,不包括第一次調用,不需要重試請設為0。默認是<dubbo:reference>的retries。

4)loadbalance

可選。作用是性能調優。

負載均衡策略,可選值:random,roundrobin,leastactive,分別表示:隨機,輪詢,最少活躍調用。

5)actives

可選。作用是性能調優。

每服務消費者最大並發調用限制。默認是0。

6)cache

可選。作用是服務治理。

以調用參數為key,緩存返回結果,可選:lru, threadlocal, jcache等。

7)validation

可選。作用是服務治理。

是否啟用JSR303標准注解驗證,如果啟用,將對方法參數上的注解進行校驗。

dubbo:argument

方法參數配置。對應的配置類: org.apache.dubbo.config.ArgumentConfig。該標簽為 <dubbo:method> 的子標簽,用於方法參數的特征描述。

示例:

<dubbo:method name="findXxx" timeout="3000" retries="2">
    <dubbo:argument index="0" callback="true" />
</dubbo:method>

常用的配置:

1)index

必填。

參數索引。0、1......

2)callback

可選。

參數是否為callback接口,如果為callback,服務提供方將生成反向代理,可以從服務提供方反向調用消費方,通常用於事件推送。

dubbo:config-center

配置中心。對應的配置類:org.apache.dubbo.config.ConfigCenterConfig。

Zookeeper配置中心示例:

<dubbo:config-center address="zookeeper://127.0.0.1:2181"/>

dubbo.config-center.address=zookeeper://127.0.0.1:2181

ConfigCenterConfig configCenter = new ConfigCenterConfig();
configCenter.setAddress("zookeeper://127.0.0.1:2181");

更多的外部化配置:https://dubbo.apache.org/zh/docs/references/configuration/external-config/

常用的配置:

1)address

必填。

配置中心地址。

2)protocol

可選。

使用哪個配置中心:apollo、zookeeper、nacos等。

以zookeeper為例:

  • 指定protocol,則address可以簡化為127.0.0.1:2181;
  • 不指定protocol,則address取值為zookeeper://127.0.0.1:2181

3)check

可選。

當配置中心連接失敗時,是否終止應用啟動。默認true。

4)config-file

可選。

全局級配置文件所映射到的key

zookeeper - 默認路徑/dubbo/config/dubbo/dubbo.properties

apollo - dubbo namespace中的dubbo.properties鍵

5)timeout

可選。

獲取配置的超時時間。默認是3000ms。

6)include-spring-env

使用Spring框架時支持,為true時,會自動從Spring Environment中讀取配置。

默認依次讀取:

  • key為dubbo.properties的配置
  • key為dubbo.properties的PropertySource

7)cluster

可選。

含義視所選定的配置中心而不同。

如Apollo中用來區分不同的配置集群

8)group

可選。

含義視所選定的配置中心而不同。

nacos - 隔離不同配置集

zookeeper - 隔離不同配置集

9)namespace

通常用於多租戶隔離,實際含義視具體配置中心而不同。

如:

  • zookeeper - 環境隔離,默認值dubbo;
  • apollo - 區分不同領域的配置集合,默認使用dubbo和application

dubbo:registry

注冊中心配置。對應的配置類: org.apache.dubbo.config.RegistryConfig。同時如果有多個不同的注冊中心,可以聲明多個 <dubbo:registry> 標簽,並在 <dubbo:service> 或 <dubbo:reference> 的 registry 屬性指定使用的注冊中心。

更多的說明:https://dubbo.apache.org/zh/docs/references/registry/

常用的配置:

1)address

必填。作用是服務發現。

注冊中心服務器地址,如果地址沒有端口缺省為9090,同一集群內的多個地址用逗號分隔,如:ip:port,ip:port,不同集群的注冊中心,請配置多個<dubbo:registry>標簽。

2)id

可選。作用是配置關聯。

注冊中心引用BeanId,可以在<dubbo:service registry="">或<dubbo:reference registry="">中引用此ID

3)protocol

可選。作用是服務發現。

注冊中心地址協議,支持dubbo, multicast, zookeeper, redis, consul(2.7.1), sofa(2.7.2), etcd(2.7.2), nacos(2.7.2)等協議。默認是dubbo。

4)port

可選。作用是服務發現。

注冊中心缺省端口,當address沒有帶端口時使用此端口做為缺省值。默認是9090。

5)username

可選。作用是服務治理。

登錄注冊中心用戶名,如果注冊中心不需要驗證可不填。

6)password

可選。作用是服務治理。

登錄注冊中心密碼,如果注冊中心不需要驗證可不填。

7)timeout

可選。作用是性能調優。

注冊中心請求超時時間(毫秒)。默認是5000。

8)session

可選。作用是性能調優。

注冊中心會話超時時間(毫秒),用於檢測提供者非正常斷線后的臟數據,比如用心跳檢測的實現,此時間就是心跳間隔,不同注冊中心實現不一樣。默認是60000。

9)wait

可選。作用是性能調優。

停止時等待通知完成時間(毫秒)。默認是0。

10)check

可選。作用是服務治理。

注冊中心不存在時,是否報錯。默認是true。

11)group

可選。作用是服務治理。

服務注冊分組,跨組的服務不會相互影響,也無法相互調用,適用於環境隔離。默認是dubbo。

dubbo:provider

服務提供者缺省值配置。對應的配置類: org.apache.dubbo.config.ProviderConfig。同時該標簽為 <dubbo:service> 和 <dubbo:protocol> 標簽的缺省值設置

常用的配置:https://dubbo.apache.org/zh/docs/references/xml/dubbo-provider/

dubbo:consumer

服務消費者缺省值配置。配置類: org.apache.dubbo.config.ConsumerConfig 。同時該標簽為 <dubbo:reference> 標簽的缺省值設置。

常用的配置:https://dubbo.apache.org/zh/docs/references/xml/dubbo-consumer/

dubbo:module

模塊信息配置。對應的配置類 org.apache.dubbo.config.ModuleConfig

常用的配置:https://dubbo.apache.org/zh/docs/references/xml/dubbo-module/

dubbo:monitor

監控中心配置。對應的配置類: org.apache.dubbo.config.MonitorConfig

常用的配置:https://dubbo.apache.org/zh/docs/references/xml/dubbo-monitor/

dubbo:parameter

選項參數配置。對應的配置類:java.util.Map。同時該標簽為<dubbo:protocol>或<dubbo:service>或<dubbo:provider>或<dubbo:reference>或<dubbo:consumer>的子標簽,用於配置自定義參數,該配置項將作為擴展點設置自定義參數使用。

常用配置:https://dubbo.apache.org/zh/docs/references/xml/dubbo-parameter/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM