Dubbo之屬性設定。
阿新 • • 發佈:2019-02-18
如果公共配置很簡單,沒有多註冊中心、多協議等情況,或者想多個Spring容器想共享配置,可以使用dubbo.properties作為預設配置。
Dubbo將自動載入classpath根目錄下的dubbo.properties,可以通過JVM啟動引數:-Ddubbo.properties.file=xxx.properties改變預設配置位置。
如果classpath根目錄下存在多個dubbo.properties,比如多個jar包中有dubbo.properties,Dubbo會任意載入,並列印Error日誌,後續可能改為拋異常。
對映規則
- 將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.mi.port=1234等價於<dubbo:protocol id="mi" name="mi" port="1099" />(協議的id沒配時,預設使用協議名作為id)
- 比如:dubbo.registry.china.address=10.20.153.10:9090等價於<dubbo:registry id= "china" address="10.20.153.10:9090" />
典型配置
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的相應配置項才會生效,通常用於共享公共配置,比如應用名。