跳过正文
  1. 博客/
  2. 后端/
  3. 框架/

Dubbo浅探

·3 分钟· ·
后端 框架 Java Dubbo
目录

繁忙的一周终于过去了,加入小影第一周主要是熟悉后端架构,同事们都挺好,自己的基础还是有点弱,前段时间简单的把Spring
Cloud 和 Dubbo学习了一下,但是其实对于工作来说,之前学的都是最新的版本,但是其实公司用的版本很老了,所以需要时间去学习老版本

历史
#

首先我们来看看Dubbo的历史,看Dubbo的历史的时候我们得先看看Spring的历史,2004年就出来了Spring1.0,随着
一些网站越做越大,例如淘宝,随着用户量越来越大,单一Spring无法支持他们的体量,
所以淘宝基于Spring开发了Dubbo这个架构

Dubbo和Spring有什么不同,Dubbo其实是基于Spring开发的,只不过他和普通的Spring程序不一样,它提供的是
分布式服务框架

原来的Spring程序放进Tomcat里面就可以跑了,但是Dubbo是将一堆Spring程序组合起来做一个分布式系统,
他提供了什么呢,总结起来就是Spring程序的互识和通信

Dubbo架构图

Dubbo使用起来非常简单,复杂的注册和监控已经帮你写了,你只要启动提供者(Provider)和消费者(Consumer)实例就好了

架构
#

其实仔细看看整个架构,什么是提供者和消费者,之前我们写web,很简单一个url对应一个接口

但是想想随着公司越来越大,小公司用户量不大直接发布新代码上线就好了,大公司需要24小时提供服务,所以Dubbo首先
做的就是将后端分层,逻辑需要经常变动的给独立开来,我们把原来的接口分成两个一个是提供者和一个是消费者

提供者负责承担真正的代码逻辑,消费者只是提供调用的接口,这样每次代码上线的时候,只需要把新提供者注册进注册中心,
然后把老提供者下线,这样就无感知的将新版本替换成老版本了

微服务区别
#

随着Spring Cloud从2016年的兴起,微服务的风潮开始兴起,那么Dubbo和Spring Cloud有什么不同呢,首先
Dubbo和Spring Cloud的设计理念是不一样的

首先Dubbo它想做的是一个Rpc框架,它提供Spring 消费者和提供者之间的通信,借此打造分布式集群,而
Spring Cloud做的是一种切分,它将系统切分成每个小的服务,每个服务负责的部分都不一样

简单来说就是,Spring Cloud提供的积木,你可以自己组装一个系统,它也不关心你用不用什么组件,单独来看,
每个Spring Cloud服务都是一个网站,他们之间用HTTP进行通信

Dubbo呢,考虑的更多是各个服务之间高效的通信,你可以理解为Dubbo是做一层网络中间件,这给他自己带来了一定的限制
而Spring Cloud本质上还是一个个网站,所以你可以很容易在里面搭建配置中心,网关,服务跟踪等等

总结
#

Dubbo出生在2011年,那个时候云服务还没有兴起,网络流量还很贵,Spring Cloud出生在2016年,正是云、Docker、K8S这些组件的大热的时候,
大家发现在一个系统中流量是最不值钱的,反而一个系统更加灵活更加好调试才更符合

但是很多老系统都在使用Dubbo作为系统架构, 所以阿里推出了Spring Cloud Alibaba,即可以兼容原来的Dubbo系统,也可以很轻松将原来的Dubbo架构
迁移到Spring Cloud的架构

## 资料

Spring的历史

相关文章

Spring Cloud Alibaba浅探
·2 分钟
后端 框架 Java SpringBoot
花了半天时间把Spring Cloud Alibaba 的Nacos 、 Sentinel 和 Seata简单的使用了一下,下面是我的一些看法
SpringCloud浅析
·5 分钟
后端 框架 Java SpringBoot
最近在学SpringCloud,之前一直对用视频学嗤之以鼻,觉得只有弱者才会这样,但是其实对于一些已经非常常见的技术 比如SpringCloud这种,已经出来很长一段时间了,而且其实非常杂,用视频学起来其实非常快,当然前提是你要三倍速播放,而且 你得把视频配套的代码找到,这样你就能很快的掌握这个。
浅析Spring
·3 分钟
后端 框架 Java SpringBoot
 > Spring核心就是IoC(依赖注入)AoP(面向切面)本篇就基于一个开源项目 tiny-spring 来分析Spring框架到底给我们提供了什么东西
浅析微服务
·5 分钟
后端 框架 Java
这篇博客主要是从web技术发展来探索微服务的起源 要想了解微服务是什么得从web框架出来之后开始讲起,大部分可能不知道微服务,一定知道写web服务的框架,懂Java的可以用Spring Boot一把梭,懂Python的Flask、Django、Tornado也写的飞起
如何在Ubuntu上发布Scala Jar包到Maven中央仓库
·7 分钟
后端 框架 Java
由于网上的教程大多数是Windows下的,而且都是介绍怎么打包Java的Jar包,关于Scala相关的比较少,因此我踩了不少坑才成功的把包发布到Maven中央仓库,你们可以才中央仓库里面搜到我的包
Java的char类型到底几个字节
·6 分钟
后端 框架 Java
引言 # 之所以有这个疑问,是上次阅读Java基础书时碰到讲解char类型没有看明白,并且在代码验证过程中错误的理解了代码的意思,导致我对这么个简单问题产生疑惑并且“恶意揣测”Java内部的黑魔法,这里就把我如何走上歪路,并且最终找到“正确”的道路的故事讲出来