1.Spring Boot 简介
Spring Boot 是简化 Spring 应用开发的一个框架,是整个Spring技术栈的一个大整合。它具有自动装配的功能,使用嵌入式的Servlet容器,应用无需打成war包,并且内嵌 Tomcat
1.1什么是自动装配
自动装配(Autowiring)是 Spring 框架中的一个特性,它允许 Spring 自动为依赖注入的字段、方法或构造函数匹配和注入合适的 bean。通过自动装配,开发者不需要手动配置依赖关系,Spring 会根据一定的规则自动寻找合适的依赖并注入到需要的地方。
1.2什么是内嵌Tomcat
内嵌 Tomcat 是指将 Apache Tomcat 服务器嵌入到 Java 应用程序中,使得应用程序可以独立运行,而不需要依赖外部的应用服务器。这种方式使得部署和运行 Java Web 应用变得更加方便和轻量化。
2.微服务
2.1单体应用系统
单体应用系统是一种软件架构风格,其中所有的功能模块和组件都打包在一个单一的部署单元中,通常是一个可执行文件或一个单一的应用程序包。在这种架构下,应用程序的所有部分,包括用户界面、业务逻辑、数据访问层等,都是紧密耦合在一起的,作为一个整体运行和部署。
这种架构有优点,例如它适合小型应用,易于开发、测试和部署;并且在本地开发和调试时,所有的代码都在一个地方,便于问题排查。
但是它的缺点很明显,它是紧耦合的结构,各个模块之间往往依赖性强,修改一个模块可能会影响其他模块的功能;难以水平扩展,不能单独扩展某个模块。
相比于微服务架构,单体应用更适合早期的、规模较小的项目,但随着业务需求的增长和复杂度的增加,可能需要考虑向微服务架构转型。
2.2分布式应用系统
分布式应用系统的各个组件分布在多个网络节点上,并通过网络进行通信和协作以完成任务。分布式系统通过协调多个独立的计算资源来实现更高的可扩展性、可靠性和容错性。
相较于单体应用系统,分布式系统中的多个组件可以并发执行任务,并且可能同时处理多个用户请求。并发性有助于提高系统的性能和响应速度,特别是在面对大量并发请求时。系统可以通过增加更多的节点或资源来水平扩展,以处理更大的工作负载。可扩展性使分布式系统能够应对需求的增长,而不需要对现有系统架构进行重大改动。
2.3微服务
2.3.1什么是微服务
微服务是指开发单个小型的但有业务功能的服务 ,每个服务都有自己处理和轻量通讯机制,可以部署在单个或多个服务器上。微服务也指一种松耦合的有一定有界上下文的面向服务架构。一个应用应该是一组小型服务,可以通过HTTP的方式进行互通。
微服务有哪些优点
- 每一个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。
- 微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。
- 微服务是松耦合的,是有功能意义的服务,无论是开发阶段或是部署阶段都是独立的。
- 微服务能够使用不同的语言开发。
- 微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,一个团队的新成员能够更快投入生产。
- 微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果,
- 微服务能够即时被要求扩展。
- 微服务能够部署中低端配置的服务。
- 微服务易于和第三方集成。
- 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一的数据库。
微服务有哪些缺点
- 微服务架构可能带来过多的操作
- 可能需要多倍的努力
- 分布式系统可能复杂难以管理
- 因为分布部署跟踪问题难
- 当服务量增加,管理复杂性增加
2.3.2为什么选择微服务
- 微服务架构将应用程序拆分为多个小的、独立的服务,每个服务专注于特定的业务功能。这些服务可以由不同的开发团队独立开发、部署和维护,而无需相互依赖。
- 分布式应用系统通常涉及多个组件或模块分布在不同的节点上,但这些组件可能仍然紧密耦合,更新和维护时需要考虑整体系统的兼容性和稳定性。
- 微服务架构使得团队可以更灵活地管理和迭代每个服务,特别是在大型项目中,不同团队可以并行开发,减少了协作中的瓶颈。