1.什么是SpringCloud
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
2.SpringCloud技术栈 SpringCloud就是微服务架构的一站式解决方案,是多种微服务架构落地的技术集合,俗称微服务全家桶。SpringCloud目前已经成为微服务开发的主流技术栈,在国内开发者社区非常火爆,可以说是"微"力十足。

SpringCloud的组件相当繁杂,拥有诸多子项目。重点关注Netflix。

SpringCloud作为Java语言的落地微服务框架,Spring Cloud已经在各大企业普遍应用,各大云厂商也支持Spring Cloud微服务框架的云产品,其中比较著名的有SpringCloud alibaba。
3.Springcloud版本
springcloud项目是由多个独立项目集合而成的,每个项目都是独立的,各自进行自己的迭代和版本发布。所以springcloud不方便使用版本号来管理,而是使用版本名。以避免和子项目版本号的冲突。
版本名的来源是伦敦的地铁站名,以字母排序。比如最早的Release版本为Angel,第二个Release版本为Brixton。。。
当一个版本的update积累的比较多或者解决了一个严重bug时,会发布一个ServiceRelease版本,简称SR,后面带的数字就是该大版本下的第一次发布。

从官网上看,springcloud的F版本是基于springboot的2.0.x构建,之前的是基于springboot的1.5.x构建。
更权威的SpringCloud技术选型参照以下网址。 SpringCloud技术选型
4.SpringCloud五大核心组件
Eureka:个服务启动时,Eureka会将服务注册到EurekaService,并且EurakeClient还可以返回过来从EurekaService拉去注册表,从而知道服务在哪里
Ribbon:服务间发起请求的时候,基于Ribbon服务做到负载均衡,从一个服务的对台机器中选择一台
Feign:基于fegin的动态代理机制,根据注解和选择机器,拼接Url地址,发起请求。
Hystrix:发起的请求是通过Hystrix的线程池来走,不同的服走不同的线程池,实现了不同的服务调度隔离,避免服务雪崩的问题。
Zuul:如果前端后端移动端调用后台系统,统一走zull网关进入,有zull网关转发请求给对应的服务。
Spring Cloud的5个核心组件通过一张图串联起来如下图:
