dubbo之分組聚合
阿新 • • 發佈:2017-09-17
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之分組聚合