Dubbo市面上很火的分布式服务治理框架,我就我自己的学习做一笔记。
首先我们要知道Dubbo产生的背景,当然是传统的服务调用达不到或很繁琐才提出的这种理念。其实Dubbo的出现就是为了解决我们传统的服务调用的缺陷。首先我列举下自己对于传统的服务调用的不足的理解:
1、服务的管理很麻烦,一个依赖的第三方服务你想知道他是死是活很麻烦。
2、服务之间的调用,最长用的就是使用HTTP接口调用,那么过多的URL管理起来是和特别棘手的事情。
3、服务的监控也不到位。等等一系列问题导致传统的服务调用问题很多。
那么Dubbo的出现会解决这些问题吗。首先我们看下传统的服务演化流程。
单机的服务(SSM)--》分布式服务(按照项目模块划分)--》SOA(面向服务划分)--》为服务架构
我们其实能看到随着项目的细化,服务必然回增多,服务之间的交互也会更加复杂,服务的管理会是一个很棘手的问题。
以上的问题就引出了需要解决的办法:Dubbo。在看Dubbo之前我们看下服务之间调用的几种方式:socket、netty、httpClient。总上所术其服务间的调用都是采用TCP + 二进制字节流来实现的。只是每个实现方式的加工不同。下面我们就看下Dubbo是如何帮我们优化这些方面的。我们可以看看Dubbo的理论模型。

这个图片是从Dubbo的官网上进行copy下来的。很清晰。我们看下他的组成模块。
1、Container:首先就是容器,负责运行和管理我们的服务提供者。
2、Provider:接下来就是咱们的服务提供者,当然他是在容器中运行的。
3、Consumer:就是服务的消费者,就是使用容器中注册的服务。
4、Register:注册中心,负责咱们服务的发现和注册。
5、Moitor:服务的监控中心。
以上就是Dubbo的几个重要的模块。
他的注册和发现,调用流程在图里也很清晰的展示出来。首先是容器的启动,然后服务的提供者会在注册中心注册服务。然后服务的消费者启动的时候回从注册中心中订阅需要的服务,然后注册中心回通知服务消费者说有该服务,然后服务消费者就可以调用provider进行业务的处理。监控中心每隔一分钟就收集一次服务的调用情况,进行监控。
通过以上的Dubbo的模型我们就能看出相比较与普通的调用,我们多了个注册中心和监控中心。但是,使用Dubbo其实最方便的一点就是可以想调用本地方法一样调用远程方法。
以上就是Dubbo的一些基本认识,后面我们在进行实践。
网友评论