SpringBoot学习之路(一)- SpringBoot入门及微服务简介

SpringBoot学习之路(一)- SpringBoot入门及微服务简介

    • SpringBoot简介
      • 前言
      • 优点
      • 缺点
    • 微服务简介
      • 前言
      • 区别
        • 传统的单体应用
        • 微服务:

SpringBoot简介

前言

SpringBoot来简化Spring应用开发,“约定大于配置”,去繁从简,之前我们做项目时,例如使用Spring、SpringMvc和Mybatis这三大框架时,创建一个应用,需要导入一大堆的jar包或者用Maven导入一堆依赖,还有写一堆的配置文件,然后测试开发业务逻辑,包括打包后还得配置服务器测试环境,然后再开发,在以前我们J2EE的开发是笨重、繁多的配置、底下的开发效率、复杂的部署流程、第三方技术集成难度大。

优点

  • 快速创建独立运行的Spring项目以及与主流框架集成
  • 使用嵌入式的Servlet容器,应用无需打成WAR包
  • starters自动依赖与版本控制
  • 大量的自动配置,简化开发,也可修改默认值
  • 无需配置XML,无代码生成,开箱即用
  • 准生产环境的运行时应用监控
  • 与云计算天然集成
  • 。。。

官方描述:https://spring.io/projects/spring-boot

缺点

  • 入门容易,精通难(感觉是最大缺点)
  • 需要了解Spring框架,才能理解SpringBoot的封装机制
  • 大量的自动配置,都需要了解Spring底层的API

微服务简介

前言

提到微服务需要先认识一个人:Martin Fowler
SpringBoot学习之路(一)- SpringBoot入门及微服务简介_第1张图片

Martin Fowler是国际著名的OO专家,敏捷开发方法的创始人之一,现为ThoughtWorks公司的首席科学家.福勒(Martin Fowler),在面向对象分析设计、UML、模式、软件开发方法学、XP、重构等方面,都是世界顶级的专家,现为Thought Works公司的首席科学家。Thought Works是一家从事企业应用开发和集成的公司。早在20世纪80年代,Fowler就是使用对象技术构建多层企业应用的倡导者,他著有几本经典书籍: 《企业应用架构模式》、《UML精粹》和《重构》等。—— 百度百科。
详细讲解可以查看此篇文章:https://www.jianshu.com/p/b2b849a63668

听听Martin Fowler怎么说的:
SpringBoot学习之路(一)- SpringBoot入门及微服务简介_第2张图片
微服务:架构风格
一个应用应该是一组小型服务,可以通过HTTP的方式进行互通;

Martin Fowler作者地址:https://martinfowler.com

区别

传统的单体应用

SpringBoot学习之路(一)- SpringBoot入门及微服务简介_第3张图片
优点:

  • develop、test 开发测试简单(因为只有一个应用,不牵涉到多个应用互联互调)
  • deploy 部署简单(部署整个应用,只需要将应用打个WAR包就行了,然后放在Tomcat服务器上,不会给运维带来太大的困难)
  • scale 扩展(包括水平扩展也比较容易,当应用的负载能力不行的时候,我们把相同的应用负载多份,也就是负载均衡机制)

缺点:

  • 这是一个牵一发动全身问题
  • 因为一个小小的修改,所有的应用需要从新部署
  • 更大的问题是我们日益增长的软件需求(可能现在的一个应用,将来可能成为一个大型应用,一个大型应用,我们不可能全都写在里边,需问题是这个应用得多大,该怎么维护,该怎么分工协作,全都是考虑的问题)

微服务:

SpringBoot学习之路(一)- SpringBoot入门及微服务简介_第4张图片

所谓的微服务就是打破以前的传统服务,以前是将所有的功能单元放在一个应用里,然后将这个应用部署到服务器上,如果负载能力不行,我们会将应用进行水平复制,而微服务提倡的是将每个功能单元独立出来, 我们可以通过功能元素的动态组合,只对功能元素进行复制,没有对应用复制。

优点:

  • 节省了调用资源
  • 将服务微化起来后,每一个服务都是可替换的,可独立升级的软件单元

缺点:

  • 后期会对部署和运维来说,是相当不容易的

详细参照微服务文档:https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa

最终架构起来的应用图:
SpringBoot学习之路(一)- SpringBoot入门及微服务简介_第5张图片
将单元独立出来以后,单元跟单元之间的互调是通过HTTP方式轻量级通信,进行互联互调,这样我们每个功能单元不断微化,形成整个应用网,类似于我们人类大脑的神经元,使用神经纤维连接起来,其实就是大型的分布式应用。

你可能感兴趣的:(▼,微服务,  ●,Spring,Boot)