一. 什么是SpringCloud

SpringCloud基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型的中立的开源组件。

SpringCloud利用Springboot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等它们都可以利用SpringBoot的开发风格做到一键启动和部署。

SpringBoot并没有重复造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

总结:SpringCloud是分布式微服务下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶

二.SpringCloud与SpringBoot的关系

1.SpringBoot关注的是微观,它具体就是一个个的微服务,SpringCloud是宏观的,分布式微服务下的一站式解决方案。通俗的讲,SpringBoot是医院里的一个个科室,而SpringCloud是将这些科室组合起来的整体医院。

2.SpringBoot可以单独使用,不需要依赖SpringCloud,而SpringCloud必须依赖于SpringBoot。

3.SpringBoot专注于快速方便开发单个个体微服务。

4.SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来。

总结:SpringBoot专注于快速方便开发单个个体微服务,SpringCloud是关注全局的微服务协调整理治理框架。

三. Dubbo与SpringBoot对比(重点)

最大区别: Spring Cloud 抛弃了RPC通信,采用基于HTTP的REST方式。

严格来说两者各有优势。虽然从一定程度上来说,SpringCloud牺牲了服务调用性能,但是也避免了原生RPC带来的问题。而且REST比RPC更灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更加适合。

Spring Cloud的功能比Dubbo更为强大,涵盖更广,而且作为Spring的拳头项目,它也能够与Spring Framework、Spring Boot、Spring Data、Spring Batch等其他Spring项目完美融合,这些对于微服务是至关重要的。使用Dubbo构建的微服务架构就像组装电脑,各个环节由我们选择的自由度很高,但最终结果很有可能因为一条内存质量不行就点不亮了,总是让人不怎么放心,如果你是一名大牛,这些都不是问题。而SpringCloud就像是品牌机,在SpringCloud的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础有足够的了解。

总结:Dubbo的定位始终是一款RPC框架,而Spring Cloud的目标是微服务架构下的一站式解决方案。

四.SpringCloud学习链接

1.各个组件对应的文档

2.SpringCloud 中文社区

3.SpringCloud中文网

最新文章

  1. Handlebars块级Helpers
  2. 重构MVC多条件+分页解决方案
  3. SpringMVC学习--校验
  4. Jquery-easyUI-datagrid参数之 queryParams
  5. 初学CDQ分治-NEU1702
  6. .NET程序性能的基本要领
  7. UVA 10006 - Carmichael Numbers 数论(快速幂取模 + 筛法求素数)
  8. usaco4.12Fence Rails(迭代加深)
  9. java平台的常用资源
  10. oracle定时执行一个存储过程
  11. 过滤器Filter(17/4/8)
  12. 跟我一起读postgresql源码(十一)——Executor(查询执行模块之——Materialization节点(上))
  13. oracle 字符串截取substr和instr
  14. MongoDB添加secondary节点的两种方法
  15. JS:事件循环机制、调用栈以及任务队列
  16. centos7 操作防火墙
  17. 【java工具】java常用工具
  18. ref与out
  19. Arbiter
  20. 【Bugly安卓开发干货】Android APP 高速 Pad 化实现

热门文章

  1. JS事件之自建函数bind()与兼容性问题解决
  2. Hyperledger Fabric动态配置Raft节点
  3. 深入Synchronized的实现原理与源码分析
  4. Java动态代理 ----- jdk代理与cglib代理
  5. 洛谷$P$4301 $[CQOI2013]$新$Nim$游戏 线性基+博弈论
  6. Ural1057. Amount of Degrees 题解 数位DP
  7. NetCore 启动地址配置详解
  8. # "可插拔式"组件设计,领略组件开发的奥秘
  9. Fastadmin 如何引入 layui 模块
  10. 快速开发一个npm包(轮子)