微服务架构:原理、优势与实践案例
1. 微服务概述
微服务架构的应用由多个微服务组成。亚马逊AWS对微服务的定义是:一种软件开发的架构和组织方法,软件由通过明确定义的API进行通信的小型独立服务组成,这些服务由小型的自包含团队负责。Sam Newman则将微服务定义为通过一种或多种通信协议与其他微服务进行通信的可独立部署的服务。
微服务架构是一种将应用结构化为一组微服务的架构风格,这些微服务具有高度可维护性和可测试性、松耦合、可独立部署、围绕业务能力组织以及由小团队负责等特点。从外部看,微服务架构的应用与其他服务器应用(可能是单体架构)并无区别,应用客户端通过REST API与应用交互,无法判断服务器应用是单体还是由微服务组成。服务器应用甚至可以从单体架构开始,后期重构为微服务架构,同时保留服务接口,无需更改客户端。
2. 微服务架构与单体架构对比
单体应用由一个大型团队开发,作为一个整体构建和部署,可在单个进程中垂直扩展或通过复制整个应用进行水平扩展,一旦出现故障则整个应用失效。而微服务应用由具有各自服务API的模块组成,每个模块由独立的小团队开发,能够独立构建、部署和扩展。
微服务架构相比单体架构具有显著优势:
- 更高效的扩展:能够根据需求独立扩展各个微服务。
- 更好的故障隔离:一个微服务的故障不会影响其他微服务。
- 避免服务中断:微服务冗余部署,新版本可零停机替换旧版本。
- 加速大型复杂应用交付:多个小团队可独立工作,提高开发效率。
小团队开发意味着团队成员只需与本团队成员协调,减少会议时间,增加编码时间。团队可以更快速地迭代,提高敏捷开发和持续交付能力,因为他们
超级会员免费看
订阅专栏 解锁全文
47

被折叠的 条评论
为什么被折叠?



