文章目录
- Spring Boot——初识Spring Boot以及什么是微服务
-
- 1、什么是Spring Boot
- 2、什么是微服务
- 3、如何构建微服务
Spring Boot——初识Spring Boot以及什么是微服务 1、什么是Spring Boot
SpringSpring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson 。
Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。
Spring BootSpringBoot是一个轻量级的javaweb的开发框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。
Spring和Spring Boot的关系:
- 以汽车为例,如果我们想组装一辆汽车,我们需要发动机、传动、轮胎、底盘、外壳、座椅、内饰等各种部件,然后把它们装配起来。Spring就相当于提供了一系列这样的部件,但是要装好汽车上路,还需要我们自己动手。而Spring Boot则相当于已经帮我们预装好了一辆可以上路的汽车,如果有特殊的要求,例如把发动机从普通款换成涡轮增压款,可以通过修改配置或编写少量代码完成。
- 因此,Spring Boot和Spring的关系就是整车和零部件的关系,Spring Boot并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。
SpringBoot的两个策略
- 开箱即用 Outofbox
指在开发过程中,通过在maven项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。
- 约定优于配置 Convention over configuration
项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置
Spring Boot的优缺点优点
- 快速构建项目。
- 对主流开发框架的无配置集成。
- 项目可独立运行,无须外部依赖Servlet容器。
- 提供运行时的应用监控。
- 极大地提高了开发、部署效率。
- 与云计算的天然集成。
- 版本迭代速度很快,一些模块改动很大。
- 由于不用自己做配置,报错时很难定位。
- 网上现成的解决方案比较少。
SOA(Service Oriented Architecture)面向服务的架构SOA是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在与操作系统进程中。各个服务之间 通过网络调用。
微服务
- 微服务是一种架构风格,他要求我们在开发一个应用的时候,这个应用必须构建成许多松散耦合且可独立部署的较小组件或服务
- 微服务遵循 SOA(面向服务的架构) 的思路,是在 SOA 上做的升华
- 微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。
单体应用架构单体应用架构(all in one):将一个应用中的所有应用服务都封装在一个应用中
优点:
- 易于开发和测试,方便部署
- 当需要扩展时,只需要将war包复制多份,然后放到多个服务器上,再做个负载均衡就可以了
- 不易修改
- 维护,分工合作困难
微服务架构所谓微服务架构,就是打破之前单体应用架构的架构方式,把每个功能元素独立起来。把独立出来的功能元素的动态组合,需要的功能元素才拿来组合,特殊情况下可以整合多个功能元素。所以微服务架构是对功能元素进行复制,而没有对整个应用进行复制。
微服务架构的优点:
- 节省了调用资源
- 每个功能元素的服务都是一个可替换的,可独立升级的软件代码
- 可扩展性:我们可以快速地添加服务集群的实例,提升整个微服务集群的服务能力
- 隔离性:当我们将每个微服务都隔离为独立的运行单元之后,任何一个或者多个微服务的失败都将只影响自己或者少量其他微服务,而不会大面积地波及整个服务运行体系。
- 多语言生态:多语言生态下的微服务开发和交付将可以最大化的发挥团队和组织内部各成员的优势。
文章图片
拓展:在架构设计上有一种实践模式,即隔板模式(Bulkhead Pattern),这种架构设计模式的首要目的就是为了隔离系统中的各个功能单元和实体,使得系统不会因为一个单元或者服务的失败而导致整体失败。
Martin Fowler于2014 年 3 月 25 日写的《Microservices》,详细阐述了什么是微服务!
原文地址:http://martinfowler.com/articles/microservices/html
3、如何构建微服务 一个大型系统的微服务架构,就像一个复杂交织的神经网络,每一个神经元就是一个功能元素,他们各自完成自己的功能,然后通过http相互请求调用。比如一个电商系统,查缓存、连数据库、浏览页面、结账、支付等服务都是一个个独立的服务功能,都被微化了,他们作为一个个微服务共同构建了一个庞大的系统。如果修改其中一个功能,只需要更新升级其中一个功能服务单元即可。
但是这种庞大的系统架构给部署和运维带来很大的难度。于是,spring为我们带来了构建大型分布式微服务的全套、全程产品:
- 构建一个个功能独立的微服务应用单元,可以使用spring boot ,可以帮我们快速构建一个应用;
- 大型分布式网络服务的调用,这部分由spring cloud来完成,实现分布式;
- 在分布式中间,进行流式数据计算、批处理,我们有spring cloud data flow。
- spring为我们想清楚了整个从开始构建应用到大型分布式应用全流程方案!
文章图片
推荐阅读
- java精品项目下载|java项目-第37期基于springboot+layui实现的医院His系统
- Java毕业设计项目实战篇|Java项目:中小医院信息管理系统(java+Springboot+ssm+mysql+maven+jsp)
- Java毕业设计项目实战篇|Java项目:医院管理系统(java+Springboot+ssm+mysql+maven)
- spring|spring boot访问接口报500
- JAVA人生|外包干了五年,废了...
- Spring|Spring boot + Vue上传到服务器(Xshell)并访问
- Spring|Spring Boot开发简单网页(员工管理系统)(五)(登录功能实现)
- Windows Server AppFabric分布式缓存研究
- Spring|spring-cloud-stream 消息分区与消息分组【只有链接,后续补】