Spring Boot
微服务
微服务概念
- 微服务是一种架构风格,它要求在开发一个应用的时候,这个应用必须构建成一系列小服务的组合;可以通过http的方式进行互通
- 之所以叫微服务,是与之前的服务化思路和实践相比较而来的
- 早些年的服务实现和实施思路是将很多功能从开发到交付都打包成一个很大的服务单元(一般称为 Monolith),而微服务实现和实施思路则更强调功能趋向单一,服务单元小型化和微型化
- 如果用“茶壶煮饺子”来打比方的话,原来我们是在一个茶壶里煮很多个饺子,现在(微服务化之后)则基本上是在一个茶壶煮一个饺子,而这些饺子就是服务的功能,茶壶则是将这些服务功能打包交付的服务单元
- 微服务架构打破之前all in one的架构方式,把每个功能元素独立出来。把独立出来的功能元素进行动态组合,需要的功能元素才进行组合,也可以整合多个需求较大的功能元素。所以微服务架构是对功能元素进行复制,而没有对整个应用进行复制
如何构建微服务
- 一个大型系统的微服务架构,就像一个复杂交织的神经网络,每一个神经元就是一个功能元素,它们各自完成自己的功能,然后通过http相互请求调用。比如一个电商系统,查缓存、连接数据库、浏览页面、结账、支付等服务都是一个个独立的被微化的功能服务,它们作为一个个微服务共同构建了一个庞大的系统。如果修改其中的一个功能,只需要更新升级其中一个功能服务单元即可
- 这种庞大的系统架构给部署和运维带来很大的难度。于是,spring为我们带来了构建大型分布式微服务的全套、全程产品:
- 构建一个个功能独立的微服务应用单元,springboot可以帮我们快速构建一个应用
- 大型分布式网络服务的调用,这部分由spring cloud来完成,实现分布式
- 在分布式的中间,进行流式数据计算、批处理、可以使用spring cloud data flow
- spring为我们想清楚了整个从开始构建应用道大型分布式应用全流程方案
spring boot学习大纲
- spring boot简介和环境搭建
- spring boot的配置和自动配置原理
- spring boot热部署与日志
- spring boot与web开发
- spring boot集成Mybatis
- spring boot启动原理源码剖析
- spring boot自定义starters
- spring boot集成常用中间件(redis、ES、RabbitMQ)
spring boot简介和环境搭建
简介
- spring boot基于spring开发。不仅继承了spring框架原有的优秀特性,而且还通过简化配置来进一步简化了spring应用的整个搭建和开发过程,其目的是用来简化spring应用的初始搭建和开发过程。就是通过提供默认配置等方式让用户更容易使用
- spring boot本身并不提供spring框架的核心特性以及扩展功能,也就是说,它并不是用来替代spring的解决方案,而是和spring框架紧密结合用于提升spring开发者体验的工具
- 关于spring boot有一句很出名的话就是约定大于配置,采用spring boot可以大大简化开发模式,它集成了大量常用的第三方库配置,所有你想集成的常用框架,它都有对应的组件支持,例如Redis、MongoDB、Dubbo、kafka、ES等。spring boot应用中这些第三方库几乎可以零配置地开箱即用,大部分的spring boot应用都只需要非常少量的配置代码,开发者能够更加专注与业务逻辑。另外spring boot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决
- 优点:
- 快速构建一个独立的spring应用程序
- 嵌入的Toncat、Jetty、或者Undertow,无需部署WAR文件
- 提供starter POMs来简化Maven配置和减少版本冲突所带来的问题
- 对spring和第三方库提供默认配置,也可修改默认值,简化框架配置
- 提供生产就绪型功能,如指示、健康检查和外部配置
- 无需配置XML,无代码生成,开箱即用