这么说吧,dubbo很简单,其实就是一个远程服务调用的框架

Posted java进阶架构师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这么说吧,dubbo很简单,其实就是一个远程服务调用的框架相关的知识,希望对你有一定的参考价值。

极简教程,五分钟快速入门之dubbo,为后面的dubbo实战以及dubbo源码分析做铺垫。

这么说吧,dubbo很简单,其实就是一个远程服务调用的框架

一、dubbo是什么?

1)本质:一个Jar包,一个分布式框架,,一个远程服务调用的分布式框架。

        既然是新手教学,肯定很多同学不明白什么是分布式和远程服务调用,为什么要分布式,为什么要远程调用。我简单画个对比图说明(图1看到图2。画板画的,勿喷)。

这么说吧,dubbo很简单,其实就是一个远程服务调用的框架

  • 你想一下,以前什么的都在一个服务器上,调用方法直接就自然而然调用了,没啥问题。

  • 现在因为需求增多拆分了这么多个,部署在不同的服务器上,那是不是相对以前都在一个服务器上,现在分布式后,web层调用service层的服务变成了远程调用(因为你的web层和service层都部署在不同机器了)?那怎样像以前那样都在一个服务器上自然而然调用方法呢?dubbo来解决。这就是下面dubbo的好处。

二、Dubbo的好处?

  • 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。

  • 软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。

三、dubbo架构图如下所示:

讲解他的架构图之前,我们先普及下几个概念。

节点角色说明:

  • Provider(生产者): 暴露服务的服务提供方。

  • Consumer(消费者): 调用远程服务的服务消费方。


如下图,我们可以简单理解为web1234需要调用service1234的服务,所以web1234是消费者,service1234是生产者。

这么说吧,dubbo很简单,其实就是一个远程服务调用的框架


那如果按照上面,消费者调用生产者的服务,那是不是如下图:

这么说吧,dubbo很简单,其实就是一个远程服务调用的框架


        你看着晕不晕?晕不晕?晕不晕?反正我是晕了,万一分布式得更多呢?,所以我们需要他:

        Registry(注册中心): 服务注册与发现的注册中心。dubbo推荐的是zookeeper。什么是zookeeper?zookeeper是用于分布式中一致性处理的框架。更多的可以查看我之前的文章。

        我这里简单讲下,zookeeper就是个中介,卖楼的(生产者)把楼盘信息放在中介(注册中心)那里,想买楼的(消费者)去中介那里获得楼盘资源清单(生产者信息等)。

        所以插播个面试题:如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?(这个应该很简单吧)

        于是,我们的图变成了这样:

这么说吧,dubbo很简单,其实就是一个远程服务调用的框架

        是不是好很多了?还不够, 我们还需要个监控中心(干嘛用的?当然是监控用的,调用失败怎么办?挂了怎么办?): Monitor——统计服务的调用次调和调用时间的监控中心。(不画图了)

然后,Provider放在容器里运行,就叫做Container服务运行容器。(不画图了)

 

到这里,dubbo有关的角色就讲完了:

  • Provider(生产者): 暴露服务的服务提供方。

  • Consumer(消费者): 调用远程服务的服务消费方。

  • Registry(中介:注册中心)

  • Monitor(统计服务的调用次调和调用时间的监控中心监控中心)

  • Container:服务运行容器。

四、最终dubbo架构,如图(从0开始看起):

这么说吧,dubbo很简单,其实就是一个远程服务调用的框架

自己脑海里按照上图走了一遍后,看看自己想的是不是和下面说明一样。

   0.服务容器负责启动,加载,运行服务提供者。

  1. 服务提供者(生产者)在启动时,向注册中心注册自己提供的服务。

  2. 服务消费者在启动时,向注册中心订阅自己所需的服务。

  3. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

本次讲解就到这里。

  • 【springboot专题】【spring源码】

  • mysql优化专题】【HTTP协议】

  • 【架构技术专题】【多线程专题】

  • 【dubbo专题】【dubbo源码专题】

  • 【JVM调优专题】【HTTP专题】

  • 【设计模式专题】【高并发专题】

  • 【架构技术专题】【Lucene专题】

  • 【数据结构专题】【redis专题】

  • 【mq中间件专题】【netty专题】

  • 【java面试专题】【zookeeper】

闷骚的大屌程序员富一代们↓↓↓↓

再走可好↓↓

以上是关于这么说吧,dubbo很简单,其实就是一个远程服务调用的框架的主要内容,如果未能解决你的问题,请参考以下文章

这么说吧,java线程池的实现原理其实很简单

Dubbo RPC远程调用框架

Dubbo学习总结 01 简单介绍

dubbo

重温Dubbo

1.dubbo简介