架构模式: 微服务的基底
架构模式: 微服务的基底
上下文
当您开始开发应用程序时,您经常花费大量时间来建立处理跨领域问题的机制。跨领域关注的例子包括:
- 外部化配置 - 包括外部服务(如数据库和消息代理)的凭据和网络位置
- 日志记录 - 配置日志框架,例如log4j或logback
- 运行状况检查 - 监视服务可以“ping”以确定应用程序运行状况的URL
- 度量标准 - 可以深入了解应用程序正在执行的操作及其执行方式的度量标准
- 分布式跟踪 - 具有代码的仪器服务,该代码为每个外部请求分配在服务之间传递的唯一标识符。
除了这些通用的跨领域问题之外,还存在特定于应用程序使用的技术的跨领域问题。使用基础结构服务(如数据库或消息代理)的应用程序需要样板配置才能执行此操作。例如,使用关系数据库的应用程序必须配置连接池。处理HTTP请求的Web应用程序也需要样板配置。
建立这些机制通常花费一两天,有时甚至更长。如果您要花费数月或数年时间开发单一应用程序,那么处理跨领域问题的前期投资是微不足道的。但是,如果您正在开发具有微服务架构的应用程序,情况就大不相同了。有数十或数百种服务。您将经常创建新服务,每个服务只需数天或数周即可开发。您无法花费几天时间来配置机制来处理跨领域问题。更糟糕的是,在微服务架构中,您必须处理其他交叉问题,包括服务注册和发现,以及可靠处理部分故障的断路器。
要点
- 创建一个新的微服务应该快速而简单
- 在创建微服务时,您必须处理横切关注点,例如外部配置,日志记录,运行状况检查,指标,服务注册和发现,断路器等。还存在针对微服务所使用的技术的跨领域问题。
解决方案
使用微服务机箱框架构建您的微服务,该框架处理跨领域问题
例子
微服务基础框架的示例:
- Java
- Go
结果上下文
微服务机箱的主要优点是,您可以快速轻松地开始开发微服务。
您需要为要使用的每种编程语言/框架提供微服务机箱。这可能成为采用新编程语言或框架的障碍。
相关的模式
有以下相关模式:
- 微服务 - 这种模式激发了对微服务基础框
- 自注册的需求 - 微服务基础框架通常负责通过服务注册表注册
- 服务客户端发现 - 微服务基础框架通常负责客户端服务发现
- Circuit Breaker -微服务基础框架可能实现这种模式
- 分布式跟踪 - 微服务基础框架实现跟踪
posted on 2019-08-02 16:09 yaofengspark 阅读(681) 评论(0) 编辑 收藏 举报