1. 程式人生 > >Dubbo-5 服務分組及多版本

Dubbo-5 服務分組及多版本

服務分組

  當一個介面有多種實現時,可以用 group 區分。

  服務端配置

<dubbo:service group="feedback" interface="com.xxx.IndexService" id="feedbackIndexService" />
<dubbo:service group="member" interface="com.xxx.IndexService" id="memberIndexService" />

  消費端配置

<dubbo:reference id="feedbackIndexService" group="feedback" interface="com.xxx.IndexService" />
<dubbo:reference id="memberIndexService" group="member" interface="com.xxx.IndexService" />

  注:在2.2.0 以上,group屬性可以配置為*,表示為任意組,總是隻調一個可用組的實現。如果服務分組了,則對應的消費者xml配置中group欄位必須存在且值不能為空。

多版本

  當一個介面實現,出現不相容升級時,可以用版本號過渡,版本號不同的服務相互間不引用。
  可以按照以下的步驟進行版本遷移:
  在低壓力時間段,先升級一半提供者為新版本
  再將所有消費者升級為新版本
  然後將剩下的一半提供者升級為新版本

  老版本服務提供者配置:

<dubbo:service interface="com.foo.BarService" version="1.0.0" ref="barServiceV1"/>

  新版本服務提供者配置:

<dubbo:service interface="com.foo.BarService" version="2.0.0" ref="barServiceV2"/>

  老版本服務消費者配置:

<dubbo:reference id="barServiceV1" interface="com.foo.BarService" version="1.0.0" />

  新版本服務消費者配置:

<dubbo:reference id="barServiceV2" interface="com.foo.BarService" version="2.0.0" />

  如果不需要區分版本,可以按照以下的方式配置(2.2.0 以上版本支援)

<dubbo:reference id="barService" interface="com.foo.BarService" version="*" />

  注:如果服務提供者使用了版本,消費者引入該服務時候,version欄位不能為空。