1.什么是SpringCloud?
Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。
换句话说:Spring Cloud 提供了构建分布式系统所需的“全家桶”。
2.SpringCloud为何而生?
网络架构由最开始的三层mvc渐渐演变。传统的三层架构后来在互联网公司让几百人几千人同时开发一个项目已经变得不可行,并且会产生代码冲突的问题。
基于SOA面向服务开发的架构,渐渐产生了微服务架构。微服务的架构的特点就是项目拆分成各个子项目,进行解耦操作,提供外部访问接口,属于敏捷开发,其实也可以视为面向接口开发。
一旦有了多个子项目,比如把淘宝网的订单系统和会员系统分开来看,就会产生如何管理接口、负载均衡、高并发情况下怎么限流断路等问题。因此,SpringCloud出现了。
3.SpringCloud的优缺点
优点:
(1)适用于各种环境,Spring Cloud 包含了微服务架构的方方面面。
(2)约定优于配置,基于注解,没有配置文件。
(3)轻量级组件,Spring Cloud 整合的组件大多比较轻量级,且都是各自领域的佼佼者。
(4)开发简便,Spring Cloud 对各个组件进行了大量的封装,从而简化了开发。
(5)开发灵活,Spring Cloud 的组件都是解耦的,开发人员可以灵活按需选择组件。
缺点:
(1).项目结构复杂,每一个组件或者每一个服务都需要创建一个项目。
(2). 部署门槛高,项目部署需要配合 Docker 等容器技术进行集群部署,而要想深入了解 Docker,学习成本高。
4.springCloud的核心子项目
(1)Spring Cloud Netflix:核心组件,可以对多个Netflix OSS开源套件进行整合,包括以下几个组件:
Eureka:服务治理组件,包含服务注册与发现。
Hystrix:容错管理组件,实现了熔断器,包含了服务雪崩的解决方案–服务熔断、服务降级、隔离资源。
Ribbon:客户端负载均衡的服务调用组件。
Feign:基于Ribbon和Hystrix的声明式服务调用组件。
Zuul:网关组件,提供智能路由、访问过滤等功能。
Archaius:外部化配置组件。
(2)Spring Cloud Config:配置管理工具,实现应用配置的外部化存储,支持客户端配置信息刷新、加密/解密配置内容等。
(3)Spring Cloud Bus:事件、消息总线,用于传播集群中的状态变化或事件,以及触发后续的处理
(4)Spring Cloud Security:基于spring security的安全工具包,为我们的应用程序添加安全控制
(5)Spring Cloud Consul : 封装了Consul操作,Consul是一个服务发现与配置工具(与Eureka作用类似),与Docker容器可以无缝集成.
总结:SpringCloud是一个基于SpringBoot的微服务架构,核心思想是面向接口开发,将往常大量繁杂的业务进行解耦,通过将业务分解成一个个微服务的方式,增加程序的高可用性。
今天主要学习了解了SpringCloud的来源,发展,以及主要组件的大体功能,未完待续···
参考资料:
1.https://blog.csdn.net/weixin_44448094/article/details/88535475
2.https://blog.csdn.net/valada/article/details/80892573
3.https://www.cnblogs.com/edisonchou/p/java_spring_cloud_foundation_sample_list.html
4.https://www.springcloud.cc/spring-cloud-greenwich.html