微服务架构

2024-10-29 22:21

什么是微服务架构?有很多种定义方法。我的定义是这这样的:

微服务架构指的是将大型复杂系统按功能或者业务需求垂直切分成更小的子系统,这些子系统以独立部署的子进程存在,它们之间通过轻量级的、跨语言的同步(比如 REST,gRPC)或者异步(消息)网络调用进行通信。

下面是基于微服务架构的商业 Web 应用的组件视图:


图片

微服务架构的重要特征

  • 整个应用程序被拆分成相互独立但包含多个内部模块的子进程

  • 与模块化的单体应用(Modular Monoliths)或 SOA 相反,微服务应用程序根据业务范围或领域垂直拆分。

  • 微服务边界是外部的,微服务之间通过网络调用(RPC 或消息)相互通信。

  • 微服务是独立的进程,它们可以独立部署。

  • 它们以轻量级的方式进行通信,不需要任何智能通信通道。

微服务架构的优点

  • 更好的开发规模

  • 更快的开发速度

  • 支持迭代开发或现代化增量开发

  • 充分利用现代软件开发生态系统的优势(云、容器、 DevOps、Serverless)

  • 支持水平缩放和细粒度缩放

  • 小体量,较低了开发人员的认知复杂性

微服务架构的缺点

  • 更高数量级的活动组件(服务、数据库、进程、容器、框架)

  • 复杂性从代码转移到基础设施

  • RPC 调用和网络通信的大量增加

  • 整个系统的安全性管理更具有挑战性

  • 整个系统的设计变得更加困难

  • 引入了分布式系统的复杂性

何时使用微服务架构

  • 大规模 Web 应用开发

  • 跨团队企业级应用协作开发

  • 长期收益优先于短期收益

  • 团队拥有能够设计微服务架构的软件架构师或高级工程师

相关文章
热点文章
精彩视频
Tags

站点地图 在线访客: 今日访问量: 昨日访问量: 总访问量: