02-微服务架构的概念与优缺点

文章目录

  • 前言
  • 一、微服务架构的概念
  • 二、微服务架构的优点
  • 三、微服务架构的缺点
  • 总结


前言

通过上一章的介绍,微服务架构已经成为现代项目架构中不可或缺的重要角色。本文将介绍微服务架构的概念和优缺点,了解微服务架构成为项目架构中重要角色的动因。


一、微服务架构的概念

微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过Restful进行通信协作。被拆分成的小型服务都围绕系统中的某一项或一些耦合度较高的业务功能进行构建,并且每个服务都维护着自身的数据存储、业务开发、自动化测试案例以及独立部署机制。
02-微服务架构的概念与优缺点_第1张图片

同时,也可以参考下其他相关网站关于微服务架构的描述。如:microservices.io

注意:微服务与微服务架构不是同一个概念!

微服务指的是服务的大小,更偏向于业务服务自身的大小范围。
微服务架构是一种架构,体现在整体系统架构的选型上,决定了产品的体量。

二、微服务架构的优点

与传统单体架构相比,微服务架构有很多优点,具体表现如下。

  1. 更好的可扩展性:微服务架构允许每个服务独立运行,从而可以按需扩展某些服务,而不会影响整个应用程序的性能。

  2. 更快的上线时间:由于服务之间的解耦,小组可以更快地开发和部署服务,更快地上线新功能。

  3. 更好的可靠性:如果一个服务出现问题,其他服务仍然可以正常运行。这个问题被限定在一个独立的服务上,而不是整个应用程序。

  4. 更好的可维护性:由于服务之间的解耦,每个服务可以由不同的团队管理和维护,而不会干扰其他服务。

  5. 更好的技术选择:每个服务可以使用不同的技术,因为它们可以独立运行。这可以让开发人员选择最适合他们的开发语言和框架。

  6. 更好的可移植性:由于服务之间的解耦,可以更容易地将服务转移到其他环境或云提供商。

  7. 更好的性能:微服务架构允许使用轻量级的通信协议,从而可以更快地传输数据,提高应用程序性能。

从我的角度来说,微服务架构的优点,可以总结为四点。
02-微服务架构的概念与优缺点_第2张图片
其中,自身独立性好,主要是指每个服务可以有自己的技术栈,自己的架构,以满足服务为目的开发,提高服务的内聚性。


三、微服务架构的缺点

微服务架构虽然被认为是一种现代化、灵活和可扩展的架构风格,但它仍然存在一些不足之处:

  1. 复杂性:微服务架构中的服务数量和交互关系可能非常复杂,这使得架构的设计、开发、测试和部署等方面都变得更加困难。

  2. 部署和运维:由于微服务架构中服务的数量众多,需要更频繁的部署和运维工作,这可能会导致运维成本的增加。

  3. 分布式事务管理:当多个微服务涉及到同一个业务逻辑时,需要进行分布式事务管理,该过程较为复杂。

  4. 性能和稳定性:微服务架构中服务的数量众多,服务之间的通信会增加系统的延迟和网络带宽的占用,同时也增加了系统故障的可能性。

  5. 数据一致性:微服务架构中的服务之间可能需要共享数据,但这也带来了数据一致性的问题。为了保证数据一致性,需要进行更复杂的协调和同步工作。

这里面我认为微服务架构所面临的最显著不足就是分布式事务的处理以及部署和运维的难题。然而,对于这两个问题,技术大佬们已经推出很多解决方案,此处不展开进行详细讨论,它们将在后续章节进行详细介绍。


总结

通过第一章和本章内容的讲述,可以看出微服务架构和SOA都是对服务的拆分,那么它们之间有什么区别呢,这里再次做一个对比。

对比项 微服务架构 SOA
规模 拆分为多个服务 拆分为多个子系统
服务粒度 粒度较小,每个服务都有特定的功能 粒度较大,一个服务可以实现相关功能
数据库 每个服务都有自己的数据库 共享一个中央的数据存储
部署方式 可以独立部署 服务相互依赖,通过中间件部署
通信协议 轻量级的RESTful API 使用SOAP协议
服务总线 无总线 企业服务总线

由此也可以看出,在面对更加复杂的业务,更加精细的需求,微服务架构相比于SOA,会更加适合现代项目架构的需要。

总的来说,通过深入了解微服务架构的概念以及其优缺点,我们可以发现在项目构建过程中,我们需要全面考虑各方面因素,并仔细权衡和设计,以充分发挥微服务架构的优势,同时避免其潜在不足对系统造成的负面影响。

你可能感兴趣的:(#,微服务,架构,微服务,云原生,java)