`
357029540
  • 浏览: 737118 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

dubbo学习总结

阅读更多

        对应dubbo来说,相信很多人都听说过,也有很多人都使用过,我们也可以通过官网文档(http://dubbo.apache.org/zh-cn/docs/user/quick-start.html)进行学习,目前官方文档介绍的是2.6.4的版本,跟目前2.7.x的版本相差也有点远了,很多代码都进行了重构,比如说DefaultFuture,在2.6.4版本中它实现了ResponseFuture接口,在接收到服务端返回的消息后通过doReceived(Response res)的done.signal()方法来将线程唤醒告知其消息已经正常返回,但是在2.7.x的版本中它却继承了java.util.concurrent.CompletableFuture类,它直接通过CompletableFuture的complete()方法来直接实现了线程的消息完成操作。目前2.7.x的dubbo只支持Java 8+的环境。

        对于dubbo来说主要就是用来进行分布式的远程服务调用,如果从简单的角度来讲我们只需要实现客户端通过网络连接服务端应用即可,即client+transport+server就可以实现一套远端服务调用了,但是为了更好的管理客户端和服务端的连接以及实现服务治理,dubbo提供了注册中心管理客户端和服务端的对象,同时针对多个服务端的时候提供了loadbalance机制进行服务端连接的选取,在服务端连接出错的时候提供了容错机制,以及当容错机制提供的操作完成后仍不能解决的mock机制即在客户端返回默认值,有时候我们也可以对客户端和服务端的连接进行路由配置,有点类似于黑白名单,指定客户端只能连接某些ip的服务端或者服务端只接收来自某些ip的客户端的请求,这个路由我们也可以通过dubbo admin去配置,这些内容都在官方文档里面有具体的说明,到时自己去翻阅下。

       通过官方文档我们自己需要去了解下各种参考手册,通过参考手册能够快速的上手服务的配置,在dubbo中最重要的就是URL,在URL上面我们会把大多数的配置放在里面,在代码中进行各种获取操作的时候基本都是通过URL来进行获取的。在dubbo中针对各种不同的配置采用了SPI的方式进行扩展,这里的SPI和Java的SPI不一样,这个是dubbo自己进行扩展了的,如果需要自己扩展某一类型的SPI,需要在自己的项目路径下面新建目录如META-INF/dubbo/org.apache.dubbo.registry.RegistryFactory的全限定名文件。针对扩展点的加载dubbo提供了ExtensionLoader.getExtensionLoader(xxx.class).getExtension(extensionName)来进行运行时的加载,xxx表示具体的需要加载的扩展接口类,extensionName表示定义好了的扩展的实现类,通过这种加载方式,我们就可以根据需要完全动态生成代理类在具体调用时使用,这个代理类的生成是保存在内存中的,并没有实际输出任何的class文件。

       在源码的阅读上面,其实官网已经介绍的非常清楚了,虽然跟现在的版本有点脱节,但是对比起来还是可以阅读的,因为现在dubbo托管到了Apache下面,所以在很多类上面都做了修改,但是为了兼容以前的老版本,在2.7.x的版本中以前的com.alibaba目录下的代码都继承了新的org.apache目录的类,源码阅读根据官网从上往下分析也会得出一个代码的加载顺序其实就是按照这个源码阅读的顺序来的,先要进行SPI扩展类的加载同时进行URL地址的拼接,毕竟URL是整个dubbo的中心,SPI加载完成后就可以将服务端需要提供的服务导出到注册中心进行注册,注册完成后客户端就可以从注册中心进行服务的引入了,同时客户端也把自己的信息注册到注册中心从而实现服务治理,在客户端引入服务后,那么我们需要怎么来实现远程调用,这个在前面也已经说明过,最后服务调用过程的源码分析基本就把整个dubbo应用串联起来了,这个里面主要分析了序列化,编解码以及服务的请求和响应过程中涉及到的handler、invoker、netty的一系列调用流程。

       以上就是dubbo的一些学习总结,总之还是需要多去官网看看它的一些描述定义,因为是alibaba提供的,所以有中文文档,不用担心看不懂,这个还是需要在实际开发中才能纯熟记住,看了几遍后也只能有个大概的模糊印象,因为没有实际的业务场景,所以自己只是写了一个小demo,采用了springboot+dubbo的xml+注解的形式,xml主要用于服务端,注解在客户端使用,地址是https://github.com/422518490/spring-boot-dubbo 。

     下面有一点小疑问是关于@Method注解的用法,这个注解目前只能在别的注解上面使用,但是定义好新的注解后怎么让这个新注解起作用呢,没有搞明白,难道还需要自己去把这个新注解获取出来去解析一遍,即使这样,但是怎么起作用呢,没有搞明白,希望了解的朋友告知下。

0
0
分享到:
评论

相关推荐

    dubbo学习总结思维导图,十分详细

    dubbo学习总结思维导图,十分详细。精确到各个知识点。

    Dubbo学习总结

    Dubbo是一款高性能、透明化RPC(Remote Procedure Call,远程过程调用)的分布式服务框架。它为分布式系统提供了服务治理能力,致力于解决高性能、透明化的远程服务调用,以及SOA(Service Oriented Architecture,...

    分布式框架Dubbo学习小案例

    总结起来,这个“分布式框架Dubbo学习小案例”旨在帮助你理解如何使用Dubbo构建分布式系统,并结合Zookeeper实现服务的注册与发现。通过实践,你可以更深入地掌握Dubbo的核心特性和工作原理,为今后的分布式系统开发...

    dubbo学习笔记

    【Dubbo是什么】 Dubbo是阿里巴巴开源的一款...此外,其基于Spring的配置方式,使得集成到现有应用中更加方便,降低了学习成本。对于初学者来说,掌握Dubbo的基本概念和使用方式,是进入分布式服务化领域的重要步骤。

    dubbo demo学习

    总结,"Dubbo Demo"是一个很好的学习起点,它涵盖了Dubbo的核心功能和基本操作。通过这个实例,初学者能深入理解服务治理的概念,为进一步开发分布式系统打下坚实基础。在实际项目中,我们还需要结合具体业务场景,...

    dubbo技术的一些总结

    Apache Dubbo是由阿里巴巴集团开源的一款高性能Java RPC框架,用于解决分布式服务架构中的服务治理问题。它专注于服务调用的性能和可靠性,提供了多种负载均衡策略和容错机制,使得服务之间的调用更加高效和稳定。 ...

    dubbo学习资料.rar

    《Dubbo深度解析与实战指南》 Dubbo是一款由阿里巴巴开源的高性能、轻量级的Java服务治理框架,它致力于提供稳定、高效的服务...这份"Dubbo学习资料"将是你探索Dubbo世界的一把钥匙,带你开启分布式服务治理的大门。

    Dubbo相关学习资料

    Dubbo是中国阿里巴巴开源的一款...总结来说,Dubbo是构建分布式系统的关键工具,它的强大在于其灵活的配置、高效的远程调用和完善的容错机制。通过深入理解和熟练运用Dubbo,开发者可以构建出稳定、高效的微服务架构。

    springboot、dubbo学习资料(推荐)

    总结起来,本套学习资料涵盖了Spring Boot自定义错误页面的实践,以及如何在Spring Boot项目中集成和使用Dubbo进行服务治理。同时,结合Egg.js和Vue.js的项目实例,提供了完整的前后端开发经验。通过深入学习这些...

    Dubbo学习讲义大全.docx

    【Dubbo学习讲义大全】 Dubbo,源自阿里巴巴,是一个高度优化且轻量级的Java RPC框架,旨在提升服务的输出和输入效率,并与Spring框架能够无缝集成。它主要提供了三个核心特性:面向接口的远程方法调用、智能容错和...

    dubbo入门例子

    总结来说,"dubbo入门例子"是一个很好的起点,它涵盖了Dubbo的基础架构和基本用法,对于想要了解和学习分布式服务框架的人来说,这是一个不容错过的实践项目。通过这个例子,你可以深入理解Dubbo的工作原理,为后续...

    dubbo学习笔记.pptx

    本文适合但不限于软件开发人员阅读。本文档能够使阅读者对dubbo的整体架构和原理有一个宏观且全面的了解,内容主要对dubbo的发展历史、架构组成、工作原理、应用场景等进行了介绍。

    dubbo.io文档

    总结来说,这三本书籍构成的《Dubbo.IO 文档》是一份全面的Dubbo学习资源,无论是初学者还是经验丰富的开发者,都能从中受益。通过阅读`dubbo-user-book`,你可以掌握基础的Dubbo使用方法;通过`dubbo-dev-book`,你...

    Dubbo入门_实战

    ### Dubbo入门实战详解 ...通过本文的学习,读者不仅对Dubbo有了初步的认识,而且也能了解到如何利用Dubbo构建实际的应用场景。在未来的工作中,可以根据具体的需求灵活运用Dubbo来优化和构建自己的分布式系统。

    dubbo-demo

    总结来说,`dubbo-demo` 是一个全面展示 Dubbo 框架工作流程的实例,涵盖了服务提供、消费、接口定义、服务注册与发现以及可视化管理等多个方面,对于理解和学习 Dubbo 具有很高的参考价值。通过分析和实践这个示例...

    dubbo源码分析pdf.zip

    通过这两本书的学习,开发者不仅可以掌握Dubbo的基本使用,还能深入理解其内部工作原理,从而在实际项目中更好地应用和定制Dubbo,提升微服务架构的设计和实施能力。对于Java开发者而言,这是一份宝贵的资源,能助其...

    dubbo入门demo样例

    总结来说,这个“dubbo入门demo样例”是一个很好的起点,它涵盖了Dubbo的基本使用方法,包括服务消费者和服务提供者的创建,以及必要的配置文件和依赖管理。通过实践这个Demo,开发者可以快速掌握Dubbo的核心概念,...

    maven-dubbo-consumer

    总结来说,`maven-dubbo-consumer`项目是一个简单的入门教程,它展示了如何使用Maven和Dubbo框架创建一个能调用远程服务的消费者。通过这个项目,开发者可以理解Dubbo的基本工作流程,为进一步学习和使用Dubbo打下...

    dubbo官方文档集

    总结,Dubbo官方文档集是学习和使用Dubbo的关键参考资料,它不仅提供了详细的使用教程,还深入剖析了Dubbo的架构和设计理念。对于希望提升服务治理能力,构建高可用、可扩展分布式系统的Java开发者来说,这是一份...

    dubbo开发中文文档以及dubbo开发所需jar包

    总结来说,这份资源是Dubbo开发者的重要参考资料,它提供了进行Dubbo开发的基础库和详尽的学习资料。通过理解和熟练使用这些jar包及用户手册,开发者能够有效地实现服务的分布式部署,提升系统的可扩展性和稳定性,...

Global site tag (gtag.js) - Google Analytics