微服务设计模式 - 概述


微服务是一种基于服务的应用程序开发方法。在这种方法中,大型应用程序将被划分为最小的独立服务单元。微服务是通过将整个应用程序划分为互连服务的集合来实现面向服务的架构(SOA)的过程,其中每个服务仅服务于一个业务需求。

走向微观的概念

在面向服务的架构中,整个软件包将被细分为小的、互连的业务单元。每个小型业务部门都将使用不同的协议相互通信,以便为客户提供成功的业务。现在的问题是,微服务架构(MSA)与 SOA 有何不同?简而言之,SOA是一种设计模式,微服务是一种实现SOA的实现方法论,或者说微服务是SOA的一种。

以下是我们在开发面向微服务的应用程序时需要牢记的一些规则。

  • 独立- 每个微服务应该是独立部署的。

  • 耦合- 所有微服务应彼此松散耦合,以便其中一个微服务的更改不会影响另一个微服务。

  • 业务目标- 整个应用程序的每个服务单元应该是最小的,并且能够实现一个特定的业务目标。

为了应用这些原则,必须解决某些挑战和问题。微服务设计模式讨论了这些常见问题并提供了解决方案。在接下来的部分中,我们将使用适用的设计模式讨论问题和解决方案。

与微服务相关的设计模式分为五个主要类别。

  • 分解设计模式- 应用程序将被分解为更小的微服务。分解设计模式提供了如何逻辑地进行设计的见解。

  • 集成设计模式- 集成设计模式完整地处理应用程序Behave。例如,如何在一次调用中获取多个服务的结果等。

  • 数据库设计模式- 数据库设计模式涉及如何为微服务定义数据库架构,例如每个服务应该有一个单独的数据库或使用共享数据库等。

  • 可观察性设计模式- 可观察性设计模式考虑跟踪日志记录、性能指标等。

  • 横切关注点设计模式- 横切关注点设计模式处理服务发现、外部配置、部署场景等。