參考文章:Dubbo官方文檔 http://dubbo.apache.org/zh-cn/index.html
Dubbo 入門 demo:https://github.com/MiaoPlus/dubbodemo.git
1、dubbo:service
服務提供者暴露服務配置。對應的配置類:org.apache.dubbo.config.ServiceConfig
屬性 | 類型 | 填寫 | 缺省 | 描述 |
---|---|---|---|---|
interface | class | 必填 | 服務接口名 | |
ref | object | 必填 | 服務對象實現引用 | |
group | string | 可選 | 服務分組,當一個接口可以有多個實現,可以用分組區分 | |
delay | int | 可選 | 0 | 延遲註冊服務時間(毫秒),設爲 -1 時,表示延遲到 Spring 容器初始化完成時暴露服務 |
protocol | string | 可選 | 使用指定的協議暴露服務,在多協議時使用,值爲<dubbo:protocol> 的id屬性,多個協議ID用逗號分隔 | |
version | string | 可選 | 0.0.0 | 服務版本,建議使用兩位數字版本,如1.0,通常在接口不兼容時版本號才需要升級 |
2、dubbo:reference
服務消費者引用服務配置。對應的配置類: org.apache.dubbo.config.ReferenceConfig
屬性 | 類型 | 填寫 | 缺省 | 描述 |
---|---|---|---|---|
id | string | 必填 | 服務引用BeanID | |
interface | class | 必填 | 服務接口名 | |
check | boolean | 可選 | 缺省使用<dubbo:comsumer>的check | 啓動時檢查提供者是否存在,true報錯,false忽略 |
timeout | long | 可選 | 缺省使用<dubbo:comsumer>的timeout | 服務方法調用超時時間(毫秒) |
group | string | 可選 | 服務分組,當一個接口有多個實現,可以用分組區分,必須和服務提供方一致 | |
version | string | 可選 | 服務版本,與服務提供者的版本一致 | |
url | string | 可選 | 點對點直連服務提供者地址,將繞過註冊中心 |
3、dubbo:protocol
服務提供者協議配置。對應的配置類: org.apache.dubbo.config.ProtocolConfig
。同時,如果需要支持多協議,可以聲明多個 <dubbo:protocol>
標籤,並在 <dubbo:service>
中通過 protocol
屬性指定使用的協議。
屬性 | 類型 | 填寫 | 缺省 | 描述 |
---|---|---|---|---|
name | string | 必填 | dubbo | 協議名稱 |
version | string | 可選 | 服務版本,與服務提供者版本一致 | |
4、dubbo:registry
註冊中心配置。對應的配置類: org.apache.dubbo.config.RegistryConfig
。同時如果有多個不同的註冊中心,可以聲明多個 <dubbo:registry>
標籤,並在 <dubbo:service>
或 <dubbo:reference>
的 registry
屬性指定使用的註冊中心。
屬性 | 類型 | 填寫 | 缺省 | 描述 |
---|---|---|---|---|
id | string | 可選 | 註冊中心引用BeanId,可以在<dubbo:service registry=""> 或 <dubbo:reference registry="">中引用此ID | |
address | string | 必填 | 註冊中心服務器地址,如果地址沒有端口缺省爲9090,同一集羣內的多個地址用逗號分隔,如:ip:port,ip:port,不同集羣的配置中心,請配置多個<dubbo:registry>標籤 | |
group | string | 可選 | dubbo | 服務註冊分組,跨組的服務不會相互影響,也無法相互調用,適用於環境隔離 |
check | boolean | 可選 | true | 註冊中心不存在時,是否報錯 |
timeout | int | 可選 | 5000 | 註冊中心請求超時時間(毫秒) |
補充:集羣技術特點
a.通過多臺計算機完成同一個工作,達到更高的效率。
b.兩機或多機內容、工作過程等完全一樣。如果一臺死機,另一臺可以起作用。
Zookeeper單機配置:
<dubbo:registry address="zookeeper://10.20.153.10:2181" />
Or:
<dubbo:registry protocol="zookeeper" address="10.20.153.10:2181" />
Zookeeper集羣配置:
<dubbo:registry address="zookeeper://10.20.153.10:2181?backup=10.20.153.11:2181,10.20.153.12:2181" />
Or:
<dubbo:registry protocol="zookeeper" address="10.20.153.10:2181,10.20.153.11:2181,10.20.153.12:2181" />
同一Zookeeper,分成多組註冊中心:
<dubbo:registry id="chinaRegistry" protocol="zookeeper" address="10.20.153.10:2181" group="china" />
<dubbo:registry id="intlRegistry" protocol="zookeeper" address="10.20.153.10:2181" group="intl" />
5、dubbo:application
應用信息配置。對應的配置類:org.apache.dubbo.config.ApplicationConfig
屬性 | 類型 | 填寫 | 缺省 | 描述 |
---|---|---|---|---|
name | string | 必填 | 當前應用名稱,用於註冊中心計算應用間依賴關係,注意:消費者和提供者應用名不要一樣,此參數不是匹配條件,當前項目叫什麼名字就填什麼,和提供者消費者角色無關,比如,A應用調用了B應用的服務,則A項目配置成A,B項目配置成B,可能A也提供其他服務給別人使用,但A永遠配置成A,這樣註冊中心將顯示A依賴於B | |
owner | string | 可選 | 應用負責人,用於服務治理,請填寫負責人公司郵箱前綴 |
6、dubbo:method
方法級配置。對應的配置類: org.apache.dubbo.config.MethodConfig
。同時該標籤爲 <dubbo:service>
或 <dubbo:reference>
的子標籤,用於控制到方法級。
屬性 | 類型 | 填寫 | 缺省 | 描述 |
---|---|---|---|---|
name | string | 必填 | 方法名 | |
timeout | 可選 | 可選 | 方法調用超時時間 | |