微服务架构入门:从历史到现代的技术探索
1. 微服务概述
微服务在技术界是一个高频词汇。很多人认为它是模块化组件化的进一步细分,但这只涵盖了部分内容。微服务是一组提供业务操作的后端服务,与前端和各种通信平台结合,形成微服务架构。这种架构是现代应用开发中实现更好效果的重要设计理念。
2. 软件架构的演变
2.1 整体式架构(Monolithic Architecture)
过去,构建业务应用的指导原则很明确,创建一个包含业务逻辑的大型整体式核心,将数据持久化到共享关系数据库,通过前端用户界面和 API 端点暴露功能,然后构建、打包和部署应用。这种整体式应用虽然构建、测试、部署和故障排除相对直接,代码在单个进程中执行,性能可能较好,需要时还能通过添加服务器资源进行垂直扩展。但它也有局限性,随着应用变得更大、更复杂和更“耦合”,它的敏捷性会降低,例如功能更新和修复可能导致意外且代价高昂的副作用,一个不稳定的组件可能导致整个系统崩溃,扩展任何组件都需要扩展整个应用,无法采用新技术和框架,每次更改都需要完整部署应用。
2.2 面向服务的架构(SOA - Service - Oriented Architecture)
SOA 是在整体式架构基础上的一种改进,它强调将应用拆分为多个服务,通过服务之间的交互来实现业务功能。与整体式架构相比,SOA 提高了系统的可重用性和灵活性,但在服务的粒度和独立性方面仍有不足。
2.3 微服务架构
微服务架构将业务领域分解为独立的服务,注重速度和敏捷性。它使业务系统能够与业务能力战略对齐,让开发者有信心进行功能发布,允许在不停止应用的情况下更新