1. 程式人生 > >Dubbo之屬性設定。

Dubbo之屬性設定。

        如果公共配置很簡單,沒有多註冊中心、多協議等情況,或者想多個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的相應配置項才會生效,通常用於共享公共配置,比如應用名。