随笔分类 -  微服务模式

架构模式: 服务组件测试
摘要:架构模式: 服务组件测试 问题 如何简化服务测试 结论 一个测试套件,它使用测试双精度对其调用的任何服务进行隔离测试。 相关模式 请参阅服务集成契约测试 其它 请参阅组件测试 阅读全文

posted @ 2019-08-02 17:24 yaofengspark 阅读(193) 评论(0) 推荐(0)

架构模式: 访问令牌
摘要:架构模式: 访问令牌 问题 如何将请求者的身份传递给处理请求的服务? 解决方案 API网关对用户进行身份验证,并传递一个访问令牌(例如JSON Web令牌),该令牌在每个服务请求中安全地标识用户。 关联的模式 API网关使用此模式。 阅读全文

posted @ 2019-08-02 17:22 yaofengspark 阅读(511) 评论(0) 推荐(0)

架构模式: 命令查询职责分离 (CQRS)
摘要:架构模式: 命令查询职责分离 (CQRS) 问题 如何在微服务架构中实现查询 结论 将应用程序拆分为两部分:命令端和查询端。命令端处理创建,更新和删除请求,并在数据更改时发出事件。查询端通过对一个或多个物化视图执行查询来处理查询,这些视图通过订阅数据更改时发出的事件流来保持最新。 关联模式 每个服务 阅读全文

posted @ 2019-08-02 17:21 yaofengspark 阅读(556) 评论(0) 推荐(0)

架构模式: 应用程序事件
摘要:架构模式: 应用程序事件 问题 如何在状态发生变化时可靠地/原子地发布事件 结论 应用程序将事件作为本地事务的一部分插入EVENTS表。一个单独的进程轮询EVENTS表并将事件发布到消息代理。 关联模式 事件驱动的体系结构模式创建了对此模式的需求。 事件溯源是一种替代模式 阅读全文

posted @ 2019-08-02 17:19 yaofengspark 阅读(147) 评论(0) 推荐(0)

架构模式: 数据库触发器
摘要:架构模式: 数据库触发器 问题 如何在状态发生变化时可靠地/原子地发布事件 结论 一个或多个数据库触发器将事件插入到EVENTS表中,该表由发布事件的单独进程轮询。 关联模式 事件驱动的体系结构模式创建了对此模式的需求。 事件溯源是一种替代模式 阅读全文

posted @ 2019-08-02 17:17 yaofengspark 阅读(250) 评论(0) 推荐(0)

架构模式: 事件溯源
摘要:架构模式: 事件溯源 问题 您已应用事件驱动的体系结构模式。为了可靠,服务必须在状态发生变化时以原子方式发布事件。使用跨越数据库和消息代理的分布式事务是不可行的。如何在状态发生变化时可靠地/原子地发布事件? 解决方案 这个问题的一个很好的解决方案是使用事件源。事件采购将业务实体(例如订单或客户)的状 阅读全文

posted @ 2019-08-02 17:13 yaofengspark 阅读(2533) 评论(0) 推荐(0)

架构模式: 事件驱动模式
摘要:架构模式: 事件驱动模式 问题 您已应用每服务数据库模式。每个服务都有自己的数据库。但是,某些业务事务跨越多个服务,因此您需要一种机制来确保服务之间的数据一致性。 例如,假设您正在建立一个客户有信用额度的电子商务商店。申请必须确保新订单不会超过客户的信用额度。由于订单和客户位于不同的数据库中,因此应 阅读全文

posted @ 2019-08-02 17:07 yaofengspark 阅读(1734) 评论(0) 推荐(0)

架构模式: 共享数据库
摘要:架构模式: 共享数据库 上下文 让我们假设您正在使用微服务架构模式开发在线商店应用程序。大多数服务需要在某种数据库中保存数据。例如,订单服务存储有关订单的信息,而客户服务存储有关客户的信息。 问题 微服务应用程序中的数据库体系结构是什么? 要点 服务必须松散耦合,以便可以独立开发,部署和扩展 某些业 阅读全文

posted @ 2019-08-02 17:03 yaofengspark 阅读(1784) 评论(0) 推荐(0)

架构模式:每个服务独立的数据库
摘要:架构模式:每个服务独立的数据库 上下文 让我们假设您正在使用微服务架构模式开发在线商店应用程序。大多数服务需要在某种数据库中保存数据。例如,订单服务存储有关订单的信息,而客户服务存储有关客户的信息。 问题 微服务应用程序中的数据库体系结构是什么? 要点 服务必须松散耦合,以便可以独立开发,部署和扩展 阅读全文

posted @ 2019-08-02 16:59 yaofengspark 阅读(845) 评论(0) 推荐(0)

架构模式:断路器
摘要:架构模式:断路器 问题 如何防止网络或服务故障级联到其他服务? 方案 服务客户端应该通过代理来调用远程服务,该代理以与电路断路器类似的方式起作用。当连续故障的数量超过阈值时,断路器跳闸,并且在超时时间段内,所有调用远程服务的尝试都将立即失败。超时到期后,断路器允许有限数量的测试请求通过。如果这些请求 阅读全文

posted @ 2019-08-02 16:52 yaofengspark 阅读(212) 评论(0) 推荐(0)

架构模式: 第三方注册
摘要:架构模式: 第三方注册 背景 如采用客户端服务发现模式或者服务器端服务发现模式,各服务实例必须在启动时注册至服务注册表,从而保证其能够被获取,并在关闭时进行注销。 问题 如何在服务注册表内注册和注销服务实例? 需求 各服务实例必须在启动时被注册至服务注册表,并在关闭时进行注销。 崩溃的服务实例必须从 阅读全文

posted @ 2019-08-02 16:49 yaofengspark 阅读(197) 评论(0) 推荐(0)

架构模式: 自注册
摘要:架构模式: 自注册 背景 如采用客户端服务发现模式或者服务器端服务发现模式,各服务实例必须在启动时注册至服务注册表,从而保证其能够被获取,并在关闭时进行注销。 问题 如何在服务注册表内注册和注销服务实例? 需求 各服务实例必须在启动时被注册至服务注册表,并在关闭时进行注销。 崩溃的服务实例必须从服务 阅读全文

posted @ 2019-08-02 16:48 yaofengspark 阅读(167) 评论(0) 推荐(0)

架构模式: 服务注册表
摘要:架构模式: 服务注册表 背景 一项服务的客户端需要使用客户端服务发现或者服务器端服务发现机制,从而获取给其发送请求的服务实例的位置。 问题 服务的客户端(在客户端服务发现机制中)或者服务路由(在服务器端服务发现机制中)如何获取可用服务实例的信息? 需求 每个服务实例都会在特定位置(主机与端口)通过H 阅读全文

posted @ 2019-08-02 16:47 yaofengspark 阅读(248) 评论(0) 推荐(0)

架构模式: 服务器端服务发现
摘要:架构模式: 服务器端服务发现 背景 不同服务之间通常需要相互调用。在单体应用程序当中,服务间通过语言层级的方法或者过程实现相互调用。在传统的分布式系统部署下,服务在固定并且已知的位置(主机与端口)运行,从而确保各服务可利用HTTP/REST或者某种RPC机制进行相互调用。然而,现代化微服务应用程序中 阅读全文

posted @ 2019-08-02 16:45 yaofengspark 阅读(739) 评论(0) 推荐(0)

架构模式: 客户端服务发现
摘要:模式: 客户端服务发现 背景 不同服务之间通常需要相互调用。在单体应用程序当中,服务间通过语言层级的方法或者过程实现相互调用。在传统的分布式系统部署下,服务在固定并且已知的位置(主机与端口)运行,从而确保各服务可利用HTTP/REST或者某种RPC机制进行相互调用。然而,现代化微服务应用程序中通常在 阅读全文

posted @ 2019-08-02 16:42 yaofengspark 阅读(861) 评论(0) 推荐(0)

架构模式: 服务前端的后端(BFF模式)
摘要:架构模式: 服务前端的后端(BFF模式) 上下文 让我们假设您正在构建一个使用Microservice体系结构模式的在线商店,并且您正在实现产品详细信息页面。您需要开发产品详细信息用户界面的多个版本: 用于桌面和移动浏览器的基于HTML5 / JavaScript的UI - HTML由服务器端Web 阅读全文

posted @ 2019-08-02 16:39 yaofengspark 阅读(8659) 评论(0) 推荐(0)

架构模式:领域独用协议
摘要:架构模式:领域独用协议 结论 使用特定于域的协议进行服务间通信。 相关模式 消息传递模式是一种替代模式 RPC模式是另一种模式 例子 有许多特定于域的协议,包括: 电子邮件协议,例如SMTP和IMAP 媒体流协议,如RTMP,HLS和HDS 阅读全文

posted @ 2019-08-02 16:22 yaofengspark 阅读(215) 评论(0) 推荐(0)

架构模式: 消息传递模式
摘要:架构模式: 消息传递模式 结论 使用异步消息传递进行服务间通信。 关联的模式 特定于域的协议模式是另一种模式 RPC模式是另一种模式 例子 有许多异步消息传递技术的例子 Apache Kafka RabbitMQ 阅读全文

posted @ 2019-08-02 16:20 yaofengspark 阅读(665) 评论(0) 推荐(0)

架构模式: 远程过程调用
摘要:架构模式: 远程过程调用 结论 使用RPC进行跨服务通信。 相关模式 特定于域的协议是一种替代模式 消息传递是一种替代模式 例子 RPC技术有很多例子 REST gRPC Apache Thrift 阅读全文

posted @ 2019-08-02 16:18 yaofengspark 阅读(309) 评论(0) 推荐(0)

架构模式: 外部配置化
摘要:架构模式: 外部配置化 上下文 应用程序通常使用一个或多个基础结构和第三方服务。基础结构服务的示例包括:服务注册表,消息代理和数据库服务器。第三方服务的示例包括:支付处理,电子邮件和消息传递等。 问题 如何使服务无需修改即可在多个环境中运行? 要点 必须为服务提供配置数据,以告知它如何连接到外部/第 阅读全文

posted @ 2019-08-02 16:16 yaofengspark 阅读(393) 评论(0) 推荐(0)

导航