Dubbo——Dubbo配置(3)
阿新 • • 發佈:2018-11-26
XML配置
provider.xml 示例:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd" >
<dubbo:application name="hello-world-app" />
<dubbo:registry address="multicast://224.5.6.7:1234" />
<dubbo:protocol name="dubbo" port="20880" />
<dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoServiceLocal" />
<dubbo:reference id="demoServiceRemote" interface="com.alibaba.dubbo.demo.DemoService" />
</beans>
標籤如下所示:
<dubbo:service/>
:用於暴露一個服務<dubbo:reference/>
:用於建立一個遠端服務代理,一個引用可以指向多個註冊中心<dubbo:protocol/>
:用於配置提供服務的協議資訊,協議由提供方指定,消費方被動接受<dubbo:application/>
:用於配置當前應用資訊,不管該應用是提供者還是消費者<dubbo:registry/>
:用於配置連線註冊中心相關資訊<dubbo:module/>
:(可選)用於配置當前模組資訊<dubbo:monitor/>
:(可選)用於配置連線監控中心相關資訊<dubbo:provider/>
:(可選)當 ProtocolConfig 和 ServiceConfig 某屬性沒有配置時,採用此預設值<dubbo:consumer/>
:(可選)當 ReferenceConfig 某屬性沒有配置時,採用此預設值<dubbo:method/>
:用於 ServiceConfig 和 ReferenceConfig 指定方法級的配置資訊<dubbo:argument/>
:用於指定方法引數配置
配置覆蓋關係
- 方法級優先,介面級次之,全域性配置再次之。
- 如果級別一樣,則消費方優先,提供方次之。
其中,服務提供方配置,通過 URL 經由註冊中心傳遞給消費方。
建議由服務提供方設定超時,因為一個方法需要執行多長時間,服務提供方更清楚,如果一個消費方同時引用多個服務,就不需要關心每個服務的超時設定。
屬性配置
如果公共配置很簡單,沒有多註冊中心,多協議等情況,或者想多個 Spring 容器想共享配置,可以使用 dubbo.properties 作為預設配置。
Dubbo 將自動載入 classpath 根目錄下的 dubbo.properties,可以通過JVM啟動引數 -Ddubbo.properties.file=xxx.properties 改變預設配置位置。
對映規則
將 XML 配置的標籤名,加屬性名,用點分隔,多個屬性拆成多行:
比如:
dubbo.application.name=foo
等價於<dubbo:application name="foo" />
dubbo.registry.address=10.20.153.10:9090
等價於<dubbo:registry address="10.20.153.10:9090" />
如果 XML 有多行同名標籤配置,可用 id 號區分,如果沒有 id 號將對所有同名標籤生效:
比如:
dubbo.protocol.rmi.port=1234
等價於<dubbo:protocol id="rmi" name="rmi" port="1099" />
*dubbo.registry.china.address=10.20.153.10:9090
等價於<dubbo:registry id="china" address="10.20.153.10:9090" />
下面是 dubbo.properties 的一個典型配置:
dubbo.application.name=foo
dubbo.application.owner=bar
dubbo.registry.address=10.20.153.10:9090
覆蓋策略
JVM 啟動 -D 引數優先,這樣可以使使用者在部署和啟動時進行引數重寫,比如在啟動時需改變協議的埠。
XML 次之,如果在 XML 中有配置,則 dubbo.properties 中的相應配置項無效。
Properties 最後,相當於預設值,只有 XML 沒有配置時,dubbo.properties 的相應配置項才會生效,通常用於共享公共配置,比如應用名。
API配置
略(不喜歡這種配置)
註解配置
略