1、Spring Boot简介
背景
J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的的部署流程、第三方技术集成难度大。
解决
“Spring全家桶”时代:
Spring Boot -> J2EE一站式解决方案
Spring Cloud -> 分布式整体解决方案
简述——什么是Spring Boot?
Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用:
- 简化spring应用开发的一个框架
- 整个spring技术栈的一个大整合
- J2EE开发的一站式解决
优点
- 快速创建独立运行的Spring项目以及与主流框架集成
- 使用嵌入式的Servlet容器,应用无需发成war包
- starters自动依赖与版本控制
- 大量的自动配置,简化开发,也可以修改默认值
- 无需配置XML,无代码生成,开箱即用
- 准生产环境的运行时应用监控
- 与云计算的天然集成
2、微服务
什么是微服务?
简而言之,微服务架构风格是将单个应用程序开发为一套小型服务的方法,每个小型服务都在自己的流程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。这些服务围绕业务功能搭建,可通过全自动部署机制独立部署。有一个集中管理的最低限度的这些服务,可以用不同的编程语言和使用不同的数据存储技术。
- 架构风格:服务微化
- 一个应用应该是一组小型的服务:可以通过http的方式进行切割。
下面我们来对比一个单体应用与微服务架构
单体应用 all in one
- 开发简单
- 测试简单
- 部署简单:直接打包成war包丢到tomcat中
- 扩展简单:把应用复制多份,部署到集群中,负载均衡时并发分配到各个应用中。
微服务
每一个功能元素都是一个可独立替换和可独立升级的软件单元。
图中每一个黑圆圈都是一个独立的单元,每个单元之间通过http进行通信,在对某一个单元进行操作时(升级,替换,移除等)不会影响到其他单元。