1. 程式人生 > >dubbo之分組聚合

dubbo之分組聚合

XML add ava als iba merge name 所有 comm

按組合並返回結果 ,比如菜單服務,接口一樣,但有多種實現,用group區分,現在消費方需從每種group中調用一次返回結果,合並結果返回,這樣就可以實現聚合菜單項。

相關代碼可以參考 dubbo 項目中的示例

配置

搜索所有分組

<dubbo:reference interface="com.xxx.MenuService" group="*" merger="true" />

合並指定分組

<dubbo:reference interface="com.xxx.MenuService" group="aaa,bbb" merger="true" />

指定方法合並結果,其它未指定的方法,將只調用一個 Group

<dubbo:reference interface="com.xxx.MenuService" group="*">
    <dubbo:method name="getMenuItems" merger="true" />
</dubbo:service>

某個方法不合並結果,其它都合並結果

<dubbo:reference interface="com.xxx.MenuService" group="*" merger="true">
    <dubbo:method name="getMenuItems" merger="false" />
</dubbo:service>

指定合並策略,缺省根據返回值類型自動匹配,如果同一類型有兩個合並器時,需指定合並器的名稱

<dubbo:reference interface="com.xxx.MenuService" group="*">
    <dubbo:method name="getMenuItems" merger="mymerge" />
</dubbo:service>

指定合並方法,將調用返回結果的指定方法進行合並,合並方法的參數類型必須是返回結果類型本身

<dubbo:reference interface="com.xxx.MenuService" group="*">
    <dubbo:method name="getMenuItems" merger=".addAll" />
</dubbo:service>

dubbo之分組聚合