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