繁忙的一周终于过去了,加入小影第一周主要是熟悉后端架构,同事们都挺好,自己的基础还是有点弱,前段时间简单的把Spring
Cloud 和 Dubbo学习了一下,但是其实对于工作来说,之前学的都是最新的版本,但是其实公司用的版本很老了,所以需要时间去学习老版本
历史 #
首先我们来看看Dubbo的历史,看Dubbo的历史的时候我们得先看看Spring的历史,2004年就出来了Spring1.0,随着
一些网站越做越大,例如淘宝,随着用户量越来越大,单一Spring无法支持他们的体量,
所以淘宝基于Spring开发了Dubbo这个架构
Dubbo和Spring有什么不同,Dubbo其实是基于Spring开发的,只不过他和普通的Spring程序不一样,它提供的是
分布式服务框架
原来的Spring程序放进Tomcat里面就可以跑了,但是Dubbo是将一堆Spring程序组合起来做一个分布式系统,
他提供了什么呢,总结起来就是Spring程序的互识和通信
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的架构
## 资料