软考高级系统架构设计师:软件架构设计系列三
一、软件架构风格-微服务
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP协议的RESTFful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境。应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。
特点:
- 小,专注于做一件事情
- 轻量级的通信机制
- 松耦合、独立部署
微服务的优势:
- 技术异构性
- 弹性
- 扩展
- 简化部署
- 与组织结构相匹配
- 可组合性
- 对可替代性的优化
微服务面临的挑战:
- 分布式系统的复杂性
- 运维成本
- 部署自动化
- DevOps与组织结构
- 服务间依赖测试
- 服务间依赖管理
二、微服务与SOA对比
微服务 | SOA |
---|