Spring SpringBoot和SpringCloud的关系
本文内容纲要:
SpringSpringBoot和SpringCloud的关系
SpringCloud是完全基于SpringBoot而开发,SpringCloud利用SpringBoot特性整合了开源行业中优秀的组件,整体对外提供了一套在微服务架构中服务治理的解决方案。
使用SpringBootActuator解决了单个SpringBoot的监控问题,使用SpringBootAdmin解决了整个集群监控的问题。
SpringBoot+Docker+Jenkins会将SpringBoot项目的部署做得更简单化、智能化。
springboot做微服务,集群的话用springcloud+SpringBootAdmin监控
================
Spring最初最核心的两大核心功能SpringIoC和SpringAOP成就了Spring,Spring在这两大核心的功能上不断的发展,才有了Spring事务、SpringMVC等一系列伟大的产品,最终成就了Spring帝国,到了后期Spring几乎可以解决企业开发中的所有问题。
SpringBoot是在强大的Spring帝国生态基础上面发展而来,发明SpringBoot不是为了取代Spring,是为了让人们更容易的使用Spring。所以说没有Spring强大的功能和生态,就不会有后期的SpringBoot火热,SpringBoot使用约定优于配置的理念,重新重构了Spring的使用,让Spring后续的发展更有生命力。
SpringCloud是一系列框架的有序集合。它利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用SpringBoot的开发风格做到一键启动和部署。
Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
根据上面的说明我们可以看出来,SpringCloud是为了解决微服务架构中服务治理而提供的一系列功能的开发框架,并且SpringCloud是完全基于SpringBoot而开发,SpringCloud利用SpringBoot特性整合了开源行业中优秀的组件,整体对外提供了一套在微服务架构中服务治理的解决方案。
综上我们可以这样来理解,正是由于SpringIoC和SpringAOP两个强大的功能才有了Spring,Spring生态不断的发展才有了SpringBoot,使用SpringBoot让Spring更易用更有生命力,SpringCloud是基于SpringBoot开发的一套微服务架构下的服务治理方案。
用一组不太合理的包含关系来表达它们之间的关系。
SpringIoC/AOP>Spring>SpringBoot>SpringCloud
总结
不知道什么时候起,行业里一些开发人员愿意相信,使用复杂的软件就意味着采用了高深的技术;使用了大量的配置,就意味着软件有着很多比较强大的功能。在产品设计的时候有一个理念就是让产品操作足够的傻瓜化,假设用户是一个智商并不高的群体,却可以使他很容易的学会使用其产品,将此特性做为产品设计的一项标准之一。
其实我们的开源软件也是一款产品,繁琐并不意味着功能强大,反而有可能是设计不够合理;简洁也并不意味着简单,很有可能它只是将众多复杂的功能进行了封装,让我们在使用的时候足够的简单。好的产品如此,好的开源软件也应该如此,SpringBoot的出现就是让编程变得更简单一些。
===================
SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,SpringBoot整合了所有的框架。
SpringBoot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。SpringBoot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。SpringBoot的核心思想就是约定大于配置,多数SpringBoot应用只需要很少的Spring配置。采用SpringBoot可以大大的简化你的开发模式,所有你想集成的常用框架,它都有对应的组件支持。
使用SpringBoot之后我们需要开发一个web项目需要哪些操作呢?
1)登录网址http://start.spring.io/选择对应的组件直接下载
2)导入项目,直接开发
SpringBoot的核心思想:约定优于配置。
SpringBoot让部署变简单,内嵌容器不只让部署变得简单,其实在开发调试阶段也会带来非常大的便利性,对比以往开发Web项目时配置Tomcat的繁琐,会让大家使用SpringBoot内嵌容器开发时有更深的感触。使用SpringBoot开发Web项目,让我们不需要关心容器的环境问题,专心写业务代码即可。
SpringBoot+Docker+Jenkins会将SpringBoot项目的部署做得更简单化、智能化。
SpringBoot让监控变得更简单
SpringBoot就是一款自带监控的开源软件,在设计之初就考虑到应用的监控问题,专门提供了一款监控组件来完成这个工作。
SpringBootActuator是SpringBoot提供的对应用系统监控的集成功能,可以查看应用配置的详细信息,例如自动化配置信息、创建的Springbeans以及一些环境属性等。
当然SpringBootActuator虽然可以监控一个SpringBoot应用的健康情况,实际上现在的系统都是需要很多的服务相互配合来完成工作,如何通过一个监控软件来监控所有的SpringBoot项目将变得比较紧迫。
有人基于Springbootactuator做出了一款强大的监控软件SpringBootadmin
SpringBootAdmin是一个管理和监控SpringBoot应用程序的开源软件。每个应用都认为是一个客户端,通过HTTP或者使用Eureka注册到adminserver中进行展示,SpringBootAdminUI部分使用AngularJs将数据展示在前端。
SpringBootAdmin是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。他可以:在列表中浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改logger的level。
使用SpringBootAdmin不仅可以监控SpringBoot项目,还可以监控SpringCloud项目。
简单、直观、易用是它的特点,针对一些特殊情况还可以提供报警服务。
使用SpringBootActuator解决了单个SpringBoot的监控问题,使用SpringBootAdmin解决了整个集群监控的问题。
本文内容总结:
原文链接:https://www.cnblogs.com/zdz8207/p/java-SpringBoot-SpringCloud.html