微服务的设计模式
微服务的目标是通过将应用程序分解为可以独立部署的小自治服务来提高应用程序发布速度。 微服务体系结构也带来了一些挑战。 此处显示的设计模式有助于缓解这些挑战。
大使 可用于以与语言无关的方式卸载常见的客户端连接任务,例如监视、日志记录、路由和安全(如 TLS)。 大使服务通常部署为侧车(请参阅下文)。
防腐层 实现新应用程序与旧应用程序之间的外观,以确保新应用程序的设计不受旧系统的依赖项的限制。
前端的后端 为不同类型的客户端(例如桌面和移动设备)创建单独的后端服务。 这样,单个后端服务就不需要处理各种客户端类型的冲突要求。 此模式可以通过分离特定于客户端的问题来帮助保持每个微服务的简单性。
批量 隔离每个工作负荷或服务的关键资源,例如连接池、内存和 CPU。 通过使用大容量块,单个工作负荷(或服务)不能消耗所有资源,从而耗尽其他资源。 此模式通过防止一个服务导致的级联故障来提高系统的复原能力。
网关聚合 将多个单个微服务的请求聚合到单个请求中,从而减少了使用者和服务之间的聊天性。
网关卸载 使每个微服务能够将共享服务功能(例如 SSL 证书的使用)卸载到 API 网关。
网关路由使用 单个终结点将请求路由到多个微服务,以便使用者无需管理多个单独的终结点。
Messaging Bridge 集成了与不同的消息传送基础结构构建的不同系统。
Sidecar 将应用程序的帮助程序组件部署为单独的容器或进程,以提供隔离和封装。
Strangler Fig 通过逐步将特定功能片段替换为新服务,支持应用程序的增量重构。
有关 Azure 体系结构中心上云设计模式的完整目录,请参阅 云设计模式。