SpringCloud全家桶学习之概览(一)
一、概览
根据百度百科的描述,微服务架构是一项在云中部署应用和服务的新技术。而SpringCloud是微服务架构思想的一个具体实现,它为开发人员提供了构建分布式系统中一些常见模式的工具(服务注册与发现、熔断器、分布式配置、网关、控制总线等),SpringCloud是基于SpringBoot框架,它不是重复造轮子,而是将第三方实现的微服务应用的一些模块集成,准确来说,SpringCloud是一个容器。
二、SpringCloud与Dubbo对比
目前在工作中一直用的是Dubbo2.7,趁着空闲时间,学习一下SpringCloud,看了网上很多关于二者对比。
以下图片及内容部分转自(https://www.cnblogs.com/xishuai/archive/2018/04/13/dubbo-and-spring-cloud.html和https://blog.csdn.net/zhangweiwei2020/article/details/78646252),如有侵权,请联系删除。
打个比方:SpringCloud相当于整机,组件都相当完整;而Dubbo相当于组装机,组件可以按自己需求自由选择;整体来说,整机的性能有保证,组装的机子更自由。

Dubbo专注于RPC和服务治理,Spring Cloud则是一个微服务架构生态。
三、两者运行流程对比
(1)Dubbo
每个组件都是需要部署在单独的服务器上,GateWay用来接收前端请求、聚合服务,并批量调用后台原子服务、每个Service单独与DB交互。

①GateWay:前置网关,具体业务操作,GateWay通过Dubbo提供的负载均衡机制自动完成(Dubbo本身并没有提供网关)
②Service:原子服务,只提供该业务相关的原子服务
③Zookeeper:原子服务注册到ZK上。
(2)SpringCloud

①所有请求都统一通过网关(Zuul)来访问内部服务
②网关接收到请求后,从注册中心(Eureka)获取可用服务
③由Ribbon进行负载均衡后,分发到后端的具体实例
④微服务之间通过Feign进行通信业务处理
(3)总结
①业务部署方式相同,都需要一个前置网关来隔绝外部直接调用原子服务的风险。
②Dubbo需要自己开发一套API网关(目前我所在公司是公司开发网关API+分布式配置Disconf,disconf---分布式配置管理平台的搭建(linux版本)),而SpringCloud则可以通过Zuul配置即可完成网关定制。
(4)优缺点
Dubbo优点:
①支持RPC调用,性能较好
②支持多种序列化协议,如Hessian、Http、WebService
③Dubbo Admin后台管理功能强大,提供了权重调节、负载均衡等
④中文文档比较全面
Dubbo不足:
①Registry严重依赖第三方组件(Zookeeper、Redis等),当这些组件出现问题时,服务调用很快就会中断。
②Dubbo只是实现了服务治理,其他微服务框架并未包含,如果需要使用则需要结合第三方框架实现(百度分布式配置Disconf、京东服务跟踪Hydra)、开发成本较大
Spring Cloud优点:
①有强大的Spring社区、NetFlix等公司支持,且开源社区贡献非常活跃
②分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体
③基于SpringBoot,具有简单配置、快速开发、轻松部署、方便测试的优点
④支持REST服务调用,相对于RPC,更加轻量化和灵活,有利于跨语言服务的实现以及服务的发布部署,结合Swagger实现服务的文档一体化
⑤提供了Docker及Kubernetes微服务编排支持
Spring Cloud不足:
①REST服务调用性能会比RPC性能较低
②Spring Cloud整合了大量的组件,相关文档比较复杂,需要针对性的阅读
③支持REST服务调用,可能因为接口定义过轻,导致定义文档与实际实现不一致导致服务集成时的问题(可以使用统一文档和版本管理解决,比如Swagger)
四、SpringCloud学习
目前Spring Cloud也是非常火热的,社区更新也比较快,所以什么都学一点,生活更多彩一些。下面正式开始demo学习Spring Cloud,并附上结构图。

五、Spring Cloud学习总结
理无专在、学无止境。
SpringCloud全家桶学习之概览(一)的更多相关文章
- SpringCloud全家桶学习之Feign负载均衡----Feign(四)
一.Feign概述 (1)Feign是什么? 官网地址:https://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-f ...
- SpringCloud全家桶学习之一阶段总结(一)
一.概述 前几篇小博客记录了我学习SpringCloud组件的过程,并与工作中所用的Dubbo框架做了一点比较,基本组件:Eureka.Ribbon.Hystrix.Feign.Zuul.Config ...
- SpringCloud全家桶学习之分布式配置中心----Config(七)
一.概述 (1)背景 微服务意味着将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中出现大量的服务.由于每个服务都需要配置必要的配置信息才能运行,所以一套集中式的.动态的配置管理 ...
- SpringCloud全家桶学习之服务注册与发现及Eureka高可用集群搭建(二)
一.Eureka服务注册与发现 (1)Eureka是什么? Eureka是NetFlix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故 ...
- SpringCloud全家桶学习之消息总线---SpringCloud Bus
一.概述 ConfigClient(微服务)从ConfigServer端获取自己对应的配置文件,但是目前的问题是:当远程git仓库配置文件发生改变时,每次都是需要重启ConfigCient(微服务), ...
- SpringCloud全家桶学习之断路器---Hystrix(五)
目前我也在摸索着学习Spring Cloud,本节主要摸索的是服务熔断.服务降级.Hystrix服务监控. 一.Hystrix概述 (1)服务雪崩 服务雪崩:多个微服务之间调用的时候,假设微服务A调用 ...
- SpringCloud全家桶学习之路由网关----Zuul(六)
一.Zuul概述 (1)Zuul是什么? Zuul包含了对请求的路由和过滤的两个最主要的功能,其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础:而过滤功能则负责对请求的 ...
- SpringCloud全家桶学习之客户端负载均衡及自定义负载均衡算法----Ribbon(三)
一.Ribbon是什么? Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具(这里区别于nginx的负载均衡).简单来说,Ribbon是Netf ...
- 框架用多了真的会死人的,spring-cloud全家桶与mybitais 集成完整示例(附下载)
题外话: 看到这一长串包含各种技术名词的标题,一路走来感觉研发深深的被各种框架给绑架了,从我们刚出生最简单的jsp,servlet打天下,到spring mvc的盛行,再到现在spring-boo ...
随机推荐
- word文档巧替换(空行替换、空格替换、软回车替换成硬回车)
一.空行替换 在日常工作中,我们经常从网上下载一些文字材料,往往因空行多使得页数居高不下.一般方法是:在“编辑”菜单中打开“查找和替换”对话框(或按ctrl+H),在“查找内容”中输入“^p^p”“替 ...
- vue-element-admin框架快速入门
年底了,最近公司也不是太忙,感觉今年互联网行业都遇到寒冬,不在是前两年像热的发烫的赛道.这几天完成公司项目系统的优化和升级,目前准备想开发一套前后端分离的系统. 现在java最新最火的技术 ...
- IntelliJ IDEA 2017.3尚硅谷-----生成 javadoc
Locale:输入语言类型:zh_CN Other command line arguments:-encoding UTF-8 -charset UTF-8
- jenkins常用
记最精简版的启动:gradle集成springboot+vue 安装jenkins,安装待推荐插件 服务器安装gradle 服务器安装npm 配置git仓库,配置git开发者账号等 配置gradle构 ...
- LED Decorative Light Manufacturer - Decorative Lighting: Functionality And Aesthetics
Whether it is for general ambient lighting, task lighting or accent lighting, the decorative lightin ...
- library 中的internal power为何为负值?
下图是library中一个寄存器Q pin 的internal_power table, 表中该pin 的internal power 大多都是负值.其实library 中的internal_powe ...
- python中pip问题
1.在cmd中运行pip命令显示‘pip命令显示不是内部或外部命令,也不是可运行的程序或批处理文件’的问题 先看python的安装目录下Script文件夹中pip3.exe有没有缺失 如果没有在cmd ...
- sublime 神一样的插件
专属配置 // 主题 "theme": "Boxy Tomorrow.sublime-theme", "theme_grid_border_size_ ...
- 使用python实现冒泡、选择、插入基础排序
冒泡排序 依次比较相邻两元素,若前一元素大于后一元素则交换之,直至最后一个元素即为最大: 然后重新从首元素开始重复同样的操作,直至倒数第二个元素即为次大元素: 依次类推.如同水中的气泡,依次将最大或最 ...
- 8.10-Day2T2 吃喝大法好
题目大意 略... 题解 开始两个人一定是一个向右走一个向下走,向右走的人最终会走到(n-1,m),向下走的人一定会走到(n,m-1). 那么不考虑重复的话总的路径数就是从(1,2)到(n-1,m)的 ...