`
y806839048
  • 浏览: 1107229 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

dubbo泛化--可以集成dubbo系统的使用

阅读更多

泛化调用,无需业务接口类进行远程调用,用于测试平台,开放网关桥接等(可用于生产环境)

 泛化调用也可做回声测试genericService.$echo(ok);

 

 

说明:泛化引用主要是针对服务消费者,服务提供方正常暴露服务即可,无须做任何修改。

 

用途:泛接口调用方式主要用于客户端没有API接口及模型类元(但是可以集成dubbo)的情况,参数及返回值中的所有POJO均用Map表示,通常用于框架集成,比如:实现一个通用的服务测试框架,可通过GenericService调用所有服务实现。

 

 

 

好处:无须将model和api暴露出去,服务消费方只需要知道调用的接口名称、方法名、参数、参数类型等等就可以实现远程调用。

 

 

 

简单Demo:

 

 

 

(1)API(在泛化引用的情况下,不暴露给消费者):

 

public interface IMenusService {

public String test(String id);

}

 

(2)服务提供者(接口实现):

 

public class IndexMenusServiceImpl implements IMenusService {

@Override

public String test(String id) {

return id + "测试";

}

}

 

 (3)在服务消费方配置:

 

<!--   generic="true" 声明为泛化引用-->

<dubbo:reference  id="genericService" interface="com.sic777.modules.menus.service.IMenusService"   generic="true" />

 

(4)调用(基于SpringMvc):

 

基本类型以及Date,List,Map等不需要转换,直接调用:

 

@Controller

@RequestMapping("generic")

public class GenericAction {

@Resource

private GenericService genericService;  //GenericService dubbo泛化类,genericService我们定义的业务接口名称(接口名)

 

@ResponseBody

@RequestMapping("getGeneric")

public String Generic(){

// 基本类型以及Date,List,Map等不需要转换,直接调用

Object result = genericService.$invoke("test", new String[] { "java.lang.String" }, new Object[] { "2" });// 如果返回POJO将自动转成Map 

return result.toString();

}

}

如果是POJO参数

 

// 用Map表示POJO参数,如果返回值为POJO也将自动转成Map 

Map<String, Object> menus = new HashMap<String, Object>();

menus.put("menuSeq", "222");

menus.put("menuName", "远程测试");

// 如果返回POJO将自动转成Map 

Object result = genericService.$invoke("getMenusModel", new String[] { "com.sic777.modules.menus.model.Menus" }, new Object[] { menus });

这样就能够在客户端没有API接口及模型类元的情况下远程调用服务。

 

分享到:
评论

相关推荐

    dubbo-master.zip

    本指南将通过解析“dubbo-master.zip”压缩包中的内容,帮助初学者理解并掌握Dubbo的核心概念和基本使用。 一、Dubbo简介 Dubbo的核心功能包括服务注册、服务发现、服务调用、负载均衡、熔断机制等,旨在提升系统的...

    dubbo-用户指南.pdf

    描述中提到了 Dubbo 可以与 Spring 框架无缝集成。这意味着开发者可以将 Dubbo 的功能与 Spring 框架提供的依赖注入、事务管理等特性结合起来,从而创建一个更加高效和易于维护的应用程序。此外,Dubbo 也是阿里巴巴...

    从零开始手写 dubbo rpc 框架-12-generic泛化调用.docx

    Dubbo 的泛化调用机制是一个非常重要的 RPC 调用机制,提供了一个通用的 RPC 调用方式,能够满足各种框架集成和服务测试的需求。通过 GenericService 接口和 GenericReferenceProxy 代理类,我们可以轻松实现泛化...

    dubbo-demo

    【标题】"dubbo-demo" 是一个基于 Dubbo 框架构建...通过这个 dubbo-demo 项目,开发者不仅可以学习到 Dubbo 的基本使用,还可以了解到微服务架构下服务治理的重要概念和实践,为构建自己的分布式系统打下坚实的基础。

    dubbo samples

    7. **服务调用监控**:如何集成Dubbo的监控中心(如Dubbo Admin),进行服务调用统计、性能分析等。 8. **API与注解使用**:通过代码示例展示如何使用Dubbo的API和注解进行服务的声明式配置。 通过深入学习和实践...

    dubbo示例demo

    1. **Dubbo配置**:包括服务提供者和消费者的XML配置文件,如`dubbo-config.xml`,它们定义了服务的元数据,如接口、版本、分组、协议等。 2. **Spring集成**:很多示例会使用Spring进行依赖注入,简化服务的生产和...

    dubbo-demo.tar.gz

    通过这个"Dubbo-demo",你可以亲手实践这些知识点,从而更深入地理解Spring、Nacos和Dubbo的集成应用,提升你在分布式系统开发中的能力。同时,有问题可以留言交流,这也有助于提高你的问题解决能力。

    dubbo 整套jar包

    综上所述,这个压缩包提供的Dubbo jar包是开发和运维微服务架构的关键工具,可以帮助开发者快速搭建分布式服务系统,提升系统的可扩展性和可维护性。在实际应用中,还需要结合具体的业务需求和团队技术栈,进行适当...

    Dubbo-RPC分布式服务框架.pptx

    Dubbo-RPC分布式服务框架 Dubbo 是阿里巴巴开发的一个分布式服务框架,每天为2千多个服务提供大于30亿次的访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。 Dubbo 最新的版本是 2.5.3。 Dubbox 是当当网基于...

    基于groovy实现 java脚本动态编译、部署、发布;可以通过脚本直接调用dubbo接口.zip

    application.setName("groovy-dubbo-consumer"); // 引用远程服务 ReferenceConfig&lt;YourServiceInterface&gt; reference = new ReferenceConfig(); reference.setApplication(application); reference.setInterface...

    dubbo用户指南

    用户可以在多种不同的场景下应用Dubbo,并可以使用其丰富的功能特性。以下是根据给定文件内容整理出的Dubbo相关知识点: ### Dubbo概述 1. **背景**: - 单一应用架构:适用于小型网站,将所有功能集中在一个应用...

    Dubbo课程资源09240924

    Dubbo集成Hystrix等组件,可以实现服务的限流控制和熔断机制,防止雪崩效应,保护系统稳定性。 8. **服务治理** 包括服务的元数据管理、服务版本控制、服务路由规则、服务权重调整等,便于对服务进行精细化管理。...

    dubbo用户手册

    这些功能使得 Dubbo 成为构建分布式系统和微服务架构的重要工具。 ### 核心功能知识点 **1. 高性能 NIO 通信及多协议集成** - Dubbo 使用 Netty 作为底层通信框架,采用 NIO 实现非阻塞 IO,支持长连接,大大提升...

    dubbox2.8.4所有jar包和resource包

    - 使用`dubbo-admin`工具,可以实时监控服务的调用情况,查看服务的性能数据,进行问题定位和调优。 总结,Dubbox 2.8.4是一个强大且成熟的分布式服务框架,通过jar包和resource包的合理使用,可以构建高效、稳定...

    Dubbo的技术演进及多语言实践.pptx

    除了主版本的演进之外,Dubbo还推出了基于Go语言的版本——Dubbo-go,该版本主要针对内部使用场景进行了优化,并且回馈了一些改进到社区。 - **核心共用**:Dubbo-go基于Dubbo的基础版本进行了开发,并对一些关键...

    Dubbo用户手册

    提供Dubbo Maven插件的使用方法,用于在Maven项目中快速集成Dubbo。 ### 服务化最佳实践 在进行服务化实践时,需要关注分包、粒度、版本控制、兼容性、序列化方式等关键因素。 ### 测试 为了确保服务的质量和...

    Dubbo工程源码

    同时,还可以研究如何将Dubbo与其他技术栈(如Spring Boot、Spring Cloud等)集成,以构建更复杂的分布式系统。 总的来说,这个压缩包提供了一个从零开始学习Dubbo的实践案例,通过实际操作和源码分析,有助于...

    Dubbo用户文档

    使用Dubbo可以实现服务的定义、注册、调用、发现等操作,并且它可以和Spring框架无缝集成,便于在企业级应用中快速部署和管理服务。Dubbo具有丰富的功能特性,可以支持集群容错、负载均衡、服务分组、多版本管理等...

Global site tag (gtag.js) - Google Analytics