Dubbo3 分組聚合

2022-03-30 17:13 更新

通過(guò)分組對(duì)結(jié)果進(jìn)行聚合并返回聚合后的結(jié)果

通過(guò)分組對(duì)結(jié)果進(jìn)行聚合并返回聚合后的結(jié)果,比如菜單服務(wù),用group區(qū)分同一接口的多種實(shí)現(xiàn),現(xiàn)在消費(fèi)方需從每種group中調(diào)用一次并返回結(jié)果,對(duì)結(jié)果進(jìn)行合并之后返回,這樣就可以實(shí)現(xiàn)聚合菜單項(xiàng)。

相關(guān)代碼可以參考 dubbo 項(xiàng)目中的示例

配置

搜索所有分組

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

合并指定分組

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

指定方法合并結(jié)果,其它未指定的方法,將只調(diào)用一個(gè) Group

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

某個(gè)方法不合并結(jié)果,其它都合并結(jié)果

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

指定合并策略,缺省根據(jù)返回值類型自動(dòng)匹配,如果同一類型有兩個(gè)合并器時(shí),需指定合并器的名稱

提示
參見(jiàn):合并結(jié)果擴(kuò)展
<dubbo:reference interface="com.xxx.MenuService" group="*">
    <dubbo:method name="getMenuItems" merger="mymerge" />
</dubbo:reference>

指定合并方法,將調(diào)用返回結(jié)果的指定方法進(jìn)行合并,合并方法的參數(shù)類型必須是返回結(jié)果類型本身

<dubbo:reference interface="com.xxx.MenuService" group="*">
    <dubbo:method name="getMenuItems" merger=".addAll" />
</dubbo:reference>
提示
2.1.0?版本開(kāi)始支持


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)