架构模式: 微服务的基底

架构模式: 微服务的基底

上下文

当您开始开发应用程序时,您经常花费大量时间来建立处理跨领域问题的机制。跨领域关注的例子包括:

  • 外部化配置 - 包括外部服务(如数据库和消息代理)的凭据和网络位置
  • 日志记录 - 配置日志框架,例如log4j或logback
  • 运行状况检查 - 监视服务可以“ping”以确定应用程序运行状况的URL
  • 度量标准 - 可以深入了解应用程序正在执行的操作及其执行方式的度量标准
  • 分布式跟踪 - 具有代码的仪器服务,该代码为每个外部请求分配在服务之间传递的唯一标识符。

除了这些通用的跨领域问题之外,还存在特定于应用程序使用的技术的跨领域问题。使用基础结构服务(如数据库或消息代理)的应用程序需要样板配置才能执行此操作。例如,使用关系数据库的应用程序必须配置连接池。处理HTTP请求的Web应用程序也需要样板配置。

建立这些机制通常花费一两天,有时甚至更长。如果您要花费数月或数年时间开发单一应用程序,那么处理跨领域问题的前期投资是微不足道的。但是,如果您正在开发具有微服务架构的应用程序,情况就大不相同了。有数十或数百种服务。您将经常创建新服务,每个服务只需数天或数周即可开发。您无法花费几天时间来配置机制来处理跨领域问题。更糟糕的是,在微服务架构中,您必须处理其他交叉问题,包括服务注册和发现,以及可靠处理部分故障的断路器。

要点

  • 创建一个新的微服务应该快速而简单
  • 在创建微服务时,您必须处理横切关注点,例如外部配置,日志记录,运行状况检查,指标,服务注册和发现,断路器等。还存在针对微服务所使用的技术的跨领域问题。

解决方案

使用微服务机箱框架构建您的微服务,该框架处理跨领域问题

例子

微服务基础框架的示例:

结果上下文

微服务机箱的主要优点是,您可以快速轻松地开始开发微服务。
您需要为要使用的每种编程语言/框架提供微服务机箱。这可能成为采用新编程语言或框架的障碍。
 

相关的模式

有以下相关模式:

  • 微服务 - 这种模式激发了对微服务基础框
  • 自注册的需求 - 微服务基础框架通常负责通过服务注册表注册
  • 服务客户端发现 - 微服务基础框架通常负责客户端服务发现
  • Circuit Breaker  -微服务基础框架可能实现这种模式
  • 分布式跟踪 - 微服务基础框架实现跟踪

 

posted on 2019-08-02 16:09  yaofengspark  阅读(681)  评论(0编辑  收藏  举报

导航