当前位置: 首页 > news >正文

Dubbo之服务分组、分组聚合。

服务分组

当一个接口有多种实现时,可以用group区分。

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

任意组:(2.2.0以上版本支持,总是只调一个可用组的实现)

<dubbo:reference id=“barService” group=“*” interface=“com.foo.IndexService” />

分组聚合

按组合并返回结果,比如菜单服务,接口一样,但有多种实现,用group区分,现在消费方需从每种group中调用一次返回结果,合并结果返回,这样就可以实现聚合菜单项。

从2.1.0版本开始支持

配置如:(搜索所有分组)

<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:reference>

或:(某个方法不合并结果,其他都合并结果)

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

或:(指定合并策略,缺省根据返回值类型自动匹配,如果同一类型有两个合并器时,需指定合并器的名称)

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

或:(指定合并方法,将调用返回结果的指定方法进行合并,合并方法的参数类型必须是返回结果类型本身)

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

相关文章:

  • 15.ThreadLocal的作用
  • Android 11 adb无线调试使用方法
  • 【安卓学习之常见问题】自定义组件-刷新后跳到第一行
  • 为农田解渴为人民群众解忧 国稻种芯-桃源:湖南坚守抗旱一线
  • 【SSM框架】Mybatis详解11(源码自取)之表关联关系
  • docker安装ES(elasticsearch7.4.2)
  • C++—— pass by value and use std::move
  • STM32CubeIDE更新ST LINK驱动失败解决方法
  • PHP cURL 函数
  • 可编程 USB 转串口适配器开发板 SHT3x-DIS 温湿度传感器芯片
  • Git - branch name
  • Vue+element 商品参数业务实现
  • Java项目:SSM博物馆售票管理系统
  • 资料美国二手APX582音频分析仪APX582
  • 流水线:如何做到应用分钟级上线交付?
  • 【347天】每日项目总结系列085(2018.01.18)
  • Js基础知识(四) - js运行原理与机制
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Protobuf3语言指南
  • React组件设计模式(一)
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 分布式任务队列Celery
  • 七牛云假注销小指南
  • 前言-如何学习区块链
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 我建了一个叫Hello World的项目
  • 移动端唤起键盘时取消position:fixed定位
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • HanLP分词命名实体提取详解
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #14vue3生成表单并跳转到外部地址的方式
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (2)STM32单片机上位机
  • (20050108)又读《平凡的世界》
  • (39)STM32——FLASH闪存
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (编译到47%失败)to be deleted
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (六)vue-router+UI组件库
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转)大型网站的系统架构
  • .NET BackgroundWorker
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET导入Excel数据
  • @软考考生,这份软考高分攻略你须知道