spring|Spring、SpringBoot和SpringCloud的基础入门( 二 )


基于SpringBoot框架 , 我们可以集成其他的技术 , 比如Redis、RabbitMq\\RockerMQ\\Kafka、Zookeeper、Dubbo、quartz、logback、OSS\\OBS、jenkins、ELK 等 , 这些是需要额外的编写代码或者配置集成的 。
三、SpringCloud框架
SpringCloud是基于SpringBoot来实现的微服务架构开发组件 , Spring Cloud是一系列框架的有序集合 。 它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发 , 如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等 , 都可以用Spring Boot的开发风格做到一键启动和部署 。 Spring Cloud并没有重复制造轮子 , 它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来 , 通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理 , 最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包 。

springCloud关注于全局的微服务整合和管理 , 将多个springBoot单体微服务进行整合以及管理 。
四、SpringBoot框架和SpringCloud框架比较
市场上使用Spring底层的基本是使用SpringBoot或者SpringCloud , 他们均集成了spring , 那么接下来我们就重点说明一下SpringBoot和SpringCloud的区别 。
1、SpringBoot和SpringCloud的区别
SpringBoot只是一个快速开发框架 , 使用注解简化了xml配置 , 内置了Servlet容器 , 以Java应用程序进行执行 。 它提供了一个默认配置 , 从而简化配置过程;
SpringCloud是基于spring boot的一系列框架的集合 , 包括 eureka、ribbon、 feign、 zuul 、hystrix等 。 它为了给微服务提供一个综合管理框架 。

2、既然SpringCloud那么强大 , 为什么还继续使用SpringBoot
使用场景不同 。 SpringBoot用于关联性不强单个微服务 。 当服务拆分多个微服务协作时为提高服务间的相互协作的可靠性高性能就要上SpringCloud 。
项目规模会决定你使用什么样的框架 , 比如一个小型的后台管理系统 , 就比较适合使用SpringBoot , 部署起来也比较简单 , 在不考虑高并发的情形下使用Springboot可以快速进行开发 , 后续也可以通过nginx/haproxy负载等来提高性能 , 对硬件的需求也相对较小 。 如果使用SpringCloud , 相对比较复杂 , 并且投入的硬件成本较高 。
额外备注:微服务领域已经出了SpringCloud , 为何还要学习SpringCloud Alibaba?
一个很重要的原因就是SpringCloud中一些组件闭源了 , 不再维护 , 如果在生产环境出现了问题 , 官方不再免费维护了 。 比如:注册中心Eureka在2.0版本之后宣布闭源了 , 容错组件Hystrix、网关组件Zuul也已经宣布停止维护了 。 SpringCloud Alibaba技术栈中的各个组件对比SpringCloud来讲 , 在性能上要更好一些 。 很多技术是阿里巴巴内部经过多年双11、双12大促的考验 , 经过不断总结和优化开源出来的产品 。