返回顶部
首页 > 资讯 > 精选 >基于dubbo分组group怎么实现
  • 199
分享到

基于dubbo分组group怎么实现

2023-07-05 14:07:13 199人浏览 八月长安
摘要

本文小编为大家详细介绍“基于dubbo分组group怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于dubbo分组group怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。服务分组当一个接口有多

本文小编为大家详细介绍“基于dubbo分组group怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于dubbo分组group怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

服务分组

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

实现代码如下:

package com.xxx.service;public interface MyDubboGroupService {public String print();}package com.xxx.service.impl;import com.xxx.service.MyDubboGroupService;public class FeebackService implements MyDubboGroupService {@Overridepublic String print() {// TODO Auto-generated method stubreturn "feedback";}}package com.xxx.service.impl;import com.xxx.service.MyDubboGroupService;public class CmsService implements MyDubboGroupService {@Overridepublic String print() {// TODO Auto-generated method stubreturn "cms";}}

applicationContext.xml 配置

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="Http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://code.alibabatech.com/schema/dubbo        http://code.alibabatech.com/schema/dubbo/dubbo.xsd"><!-- 配置Bean --><bean id="feebackService" class="com.xxx.service.impl.FeebackService" /><bean id="cmsService" class="com.xxx.service.impl.CmsService" /><!-- 引入配置文件 --><import resource="classpath:dubbo.xml" /></beans>

dubbo.xml 配置

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"    xsi:schemaLocation="http://www.springframework.org/schema/beans            http://www.springframework.org/schema/beans/spring-beans.xsd            http://code.alibabatech.com/schema/dubbo            http://code.alibabatech.com/schema/dubbo/dubbo.xsd">    <!-- 指定服务名字 -->    <dubbo:application name="dubboGroup" />    <!-- 声明服务注册中心 -->    <dubbo:reGIStry protocol="ZooKeeper" address="127.0.0.1:2181" />    <!-- 暴露你的服务地址 -->    <dubbo:service interface="com.xxx.service.MyDubboGroupService" group="feedback" />    <dubbo:service interface="com.xxx.service.MyDubboGroupService" group="cms" /></beans>

调用端dubbo.xml 配置

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"    xsi:schemaLocation="http://www.springframework.org/schema/beans            http://www.springframework.org/schema/beans/spring-beans.xsd            http://code.alibabatech.com/schema/dubbo            http://code.alibabatech.com/schema/dubbo/dubbo.xsd">    <!-- 指定WEB服务名字 -->    <dubbo:application name="dubboGroup" />        <!-- 声明服务注册中心 -->    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />    <!-- 暴露你的服务地址 -->    <dubbo:reference id="feebackService" interface="com.xxx.service.MyDubboGroupService" group="feedback" />    <dubbo:reference id="cmsService" interface="com.xxx.service.MyDubboGroupService" group="cms" />    <!-- 任意组 -->    <dubbo:reference id="autoService" interface="com.xxx.service.MyDubboGroupService" group="*" />    </beans>

调用代码如下:

package com.xxx.application;import java.io.IOException;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.xxx.service.MyDubboGroupService;public class DubboApplication {        public static void main(String[] args) throws IOException {        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");        // 访问feedback接口        MyDubboGroupService feebackService = (MyDubboGroupService) ctx.getBean("feebackService");        System.out.println(feebackService.print());        // 访问member接口        MyDubboGroupService cmsService = (MyDubboGroupService) ctx.getBean("cmsService");        System.out.println(cmsService.print());        // 访问随机接口        MyDubboGroupService autoService = (MyDubboGroupService) ctx.getBean("autoService");        System.out.println(autoService.print());    }    }

上面调用端dubbo.xml 配置出现的任意组:(2.2.0以上版本支持,总是只调一个可用组的实现)

<dubbo:reference id="autoService" interface="com.xxx.service.MyDubboGroupService" group="*" />

分组聚合

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

基于dubbo分组group怎么实现

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

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

读到这里,这篇“基于dubbo分组group怎么实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: 基于dubbo分组group怎么实现

本文链接: https://lsjlt.com/news/352460.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于dubbo分组group怎么实现
    本文小编为大家详细介绍“基于dubbo分组group怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于dubbo分组group怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。服务分组当一个接口有多...
    99+
    2023-07-05
  • 基于dubbo分组group的一些总结
    目录服务分组分组聚合总结服务分组 1.当一个接口有多种实现时,可用使用group分组。 实现代码如下: package com.xxx.service; public interf...
    99+
    2023-03-21
    dubbo分组group dubbo分组 dubbo group
  • 基于dubbo的分布式架构怎么实现
    本篇内容介绍了“基于dubbo的分布式架构怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言现在越来越多的互联网公司还是将自己公司的...
    99+
    2023-06-05
  • 基于mysql实现group by取各分组最新一条数据
    前言: group by函数后取到的是分组中的第一条数据,但是我们有时候需要取出各分组的最新一条,该怎么实现呢? 本文提供两种实现方式。 一、准备数据 http://note.youdao.com/noteshare...
    99+
    2022-05-27
    mysql group by 分组
  • dubbo怎么实现consumer从多个group中调用指定group的provider
    本篇内容主要讲解“dubbo怎么实现consumer从多个group中调用指定group的provider”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“dubbo怎么实现consumer从多个g...
    99+
    2023-07-05
  • 基于SpringBoot的Dubbo泛化调用的实现代码
    目录1、服务端定义1.1 服务定义及实现1.2 服务提供者配置1.3 启动类1.4 pom文件2、消费端定义2.1 Dubbo配置类2.2 启动类2.3 pom文件3、 运行结果4 ...
    99+
    2024-04-02
  • Golang基于泛化调用与Nacos实现Dubbo代理
    目录前言准备实现项目结构go.mod返回数据格式获取 nacos 元信息泛化调用提供 http 服务启动效果前言 由于工作中使用的 rpc 框架是 dubbo,经常需要调试不同环境的...
    99+
    2023-05-14
    Golang实现Dubbo代理 Golang Dubbo代理 Golang Dubbo
  • MongoVUE下实现MongoDB的Group分组查询
      我们知道,MongoDB是一种非关系型数据库,所以它的查询方式与标准的结构化查询语言SQL有很大的不同。但无论它是怎么复杂的一种结构,当它经过开发者的双手后,它只能变成客户想要的结构。今天要讲述的就是M...
    99+
    2024-04-02
  • 基于Zookeeper怎么实现分布式锁
    这篇文章主要介绍“基于Zookeeper怎么实现分布式锁”,在日常操作中,相信很多人在基于Zookeeper怎么实现分布式锁问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于Zookeeper怎么实现分布式锁...
    99+
    2023-06-22
  • Java基于JNDI怎么实现读写分离
    这篇文章主要介绍“Java基于JNDI怎么实现读写分离”,在日常操作中,相信很多人在Java基于JNDI怎么实现读写分离问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java基于JNDI怎么实现读写分离”的疑...
    99+
    2023-06-22
  • 基于Python怎么实现文件分类器
    本篇内容主要讲解“基于Python怎么实现文件分类器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python怎么实现文件分类器”吧!通过自定义需要整理的文件目录,将该目录下面的全部文件按照...
    99+
    2023-07-05
  • 基于spark的数据分析怎么实现
    要基于Spark实现数据分析,通常可以按照以下步骤进行: 数据准备:首先要将需要分析的数据加载到Spark中,可以从文件系统、数...
    99+
    2024-04-02
  • vue基于Teleport实现Modal组件
    目录1.认识Teleport2.Teleport的基本用法 3.第一步优化 4.第二步优化 5.实现Modal组件 1.认识Teleport 像我们如果写Modal组件、Messag...
    99+
    2024-04-02
  • 基于Redis缓存怎么实现分布式锁
    本篇内容介绍了“基于Redis缓存怎么实现分布式锁”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是分布式锁首先我们先来简单了解一下什么是...
    99+
    2023-06-19
  • Laravel基于reset怎么实现分布式事务
    这篇文章主要讲解了“Laravel基于reset怎么实现分布式事务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Laravel基于reset怎么实现分布式事务”吧!    ...
    99+
    2023-06-25
  • 基于原生JS怎么实现分页效果
    这篇文章主要介绍“基于原生JS怎么实现分页效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于原生JS怎么实现分页效果”文章能帮助大家解决问题。实现之后的效果首先需要初始化该对象的一些基本属性,显...
    99+
    2023-06-30
  • 基于hadoop的分布式爬虫怎么实现
    要实现基于Hadoop的分布式爬虫,可以按照以下步骤进行: 设计架构:首先需要设计分布式爬虫的架构,确定集群中各个节点的角色和任...
    99+
    2024-03-06
    hadoop
  • dubbo怎么实现rpc调用
    Dubbo是一个基于Java的高性能RPC框架,可以实现远程服务的调用。以下是使用Dubbo实现RPC调用的步骤:1. 定义服务接口...
    99+
    2023-10-23
    dubbo
  • Vue基于Element-ui怎么实现表格弹窗组件
    本篇内容主要讲解“Vue基于Element-ui怎么实现表格弹窗组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue基于Element-ui怎么实现表格弹窗组件”吧!效果图使用方式acTab...
    99+
    2023-06-30
  • Golang基于泛化调用与Nacos实现Dubbo代理的方法是什么
    这篇“Golang基于泛化调用与Nacos实现Dubbo代理的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Gol...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作