4、深入解析微服务设计模式与实践

深入解析微服务设计模式与实践

1. 服务数据库维护模式

在为每个服务维护数据库时,为克服相关弊端,可采用以下模式:

1.1 Sagas

Sagas 是一系列本地事务的批量序列。批量中的每个条目会更新指定数据库,并通过发布消息或触发事件来促使批量中的下一个条目执行。若批量中的任何条目本地执行失败或违反任何业务规则,Sagas 将执行一系列补偿事务,以补偿或撤销由批量更新所做的更改。

1.2 API 组合

此模式主张由应用程序而非数据库执行连接操作。例如,有一个专门用于查询组合的服务。若要获取每月产品分布信息,首先从产品服务中检索产品,然后查询分销服务以返回所检索产品的分销信息。

1.3 命令查询职责分离(CQRS)

该模式的原则是拥有一个或多个不断演变的视图,这些视图的数据通常来自不同的服务。从根本上讲,它将应用程序分为两部分:命令或操作端以及查询或执行端。这更像是一种发布 - 订阅模式,命令端处理创建、更新和删除请求,并在数据更改时发出事件。执行端监听这些事件,并通过维护视图来处理查询,这些视图会根据命令或操作端发出的事件订阅保持最新状态。

2. 分布式微服务架构的共享问题处理

2.1 外部化配置

应用程序通常会使用一个或多个第三方基础设施服务,如服务注册表、消息代理、服务器、云部署平台等。任何服务都必须能够在多个环境中无修改地运行,并且应具备获取外部配置的能力。此模式建议将所有配置(包括数据库信息、环境信息、网络位置等)外部化,创建一个启动服务来读取这些信息并相应地准备应用程序。有多种实现方式,例如 Node.js 可设

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值