横切关注点之微服务模式

背景

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

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

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

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

诉求

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

解决方案

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

例子

微服务机箱框架的示例:

  • Java的Spring Boot,Spring Cloud和Dropwizard
  • go的Gizmo,Micro,Go kit

结果背景

微服务机箱的主要优点是,您可以快速轻松地开始开发微服务。

您需要为要使用的每种编程语言/框架提供微服务机箱。这可能成为采用新编程语言或框架的障碍。

相关模式

有以下相关模式:

  • 微服务 - 这种模式激发了对微服务机箱模式的需求
  • 自注册 - 微服务机箱通常负责向服务注册表注册服务
  • 客户端发现 - 微服务机箱通常负责客户端服务发现
  • 断路器 - 微服务机箱框架可能实现此模式
  • 分布式跟踪 - 微服务机箱框架可能会检测代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值