vlambda博客
学习文章列表

Dubbo底层原理,java分布式框架,源码分析

01

dubbo原理简单介绍


Apache dubbo 是一个高性能Java RPC框架。了解dubbo,必须了解远程过程调用。在Java中没有过程,只有方法。在Java中你完全可以称它为远程方法调用。说白了,你是A计算机,想调用B计算机上的方法,就要使用远程方法调用。

RPC是计算机的一种通信协议,它不只一种应用层协议,包括rmi,hessian,http,webservice,thrift,memcached,redis.rest等协议。Dubbo采用全spring配置方式,透明化接入应用。对应用没有任何api侵入。只需要spring加载dubbo的配置即可。Dubbo基于spring的schema扩展进行加载。如果不想使用spring配置,可以通过API方式进行调用

服务以接口为粒度,为开发者屏蔽远程调用底层细节。这样的化解决负载均衡,服务注册与发现,高度可扩展能力。运行期流量调度。可视化的服务治理与运维。根据接口名,方法名,方法参数类型列表唯一的确定一个接口。

服务变动主动通知服务消费者。

服务提供者负责提供服务的接口,提供实现类,注册服务,以tomcat,NettyServer的形式暴露服务。

监控中心主要负责统计服务调用次数和调用时间等。


02

源码分析


把dubbo源码dowload下来,用我们的idea打开。

打开百度APP,查看更多高清图片

我们上边介绍的不同协议,dubbo用不同的模块来实现,比如说rdis等。Dubbo自定义了自己的schma,std。

Dubbo底层原理,java分布式框架,源码分析

看一下customer文件它是怎么写的

Dubbo底层原理,java分布式框架,源码分析

服务导入

这个里面是dubbo自定义的一些标签。

客户端拿到的对象其实是代理对象。所以我们在使用duobbo的时候,在配置文件中可以使用proxy,决定你想使用什么形式的代理。


03

dubbo和spring cloud


使用Dubbo构建的微服务架构就像组装电脑,各环节我们的选择自由度很高,但是最终结果很有可能因为一条内存质量不行就点不亮了,总是让人不怎么放心,但是如果你是一名高手,那这些都不是问题;而Spring Cloud就像品牌机,在Spring Source的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础有足够的了解。