微服务架构构建与应用开发
1. 分布式数据库架构模式
1.1 直接 HTTP 调用
直接 HTTP 调用被视为一种反模式,应尽量避免,因为它会在服务之间创建直接依赖。例如,在一个电子商务系统中,包含购物服务、产品服务和定价服务,每个服务都有独立的数据库来存储特定领域的信息。当用户从电子商务网站购买商品时,网站会向购物服务发送 HTTP POST 请求。在将请求保存到购物服务数据库之前,该服务需要验证产品数量并读取价格信息。使用直接 HTTP 调用模式,购物服务可以直接向产品和定价服务发出请求,读取产品和定价信息,然后将信息保存到购物服务数据库。
1.2 聚合器模式
聚合器模式是将直接 HTTP 调用从服务本身委托给聚合器服务的另一种方法。聚合器服务的职责是向其他服务发出 HTTP 调用,聚合结果,并向目标服务发出单个 HTTP 调用。在上述购物服务场景中,请求首先到达聚合器服务,该服务向产品和定价服务发出请求。收到响应后,它聚合结果并向购物服务发出 HTTP POST 请求。聚合器服务具有弹性,如果产品和定价服务失败,它应该有某种机制来重试调用。
我们还可以使用 Azure APIM 来构建聚合器服务。通过 Azure APIM,我们可以读取传入请求,向其他服务发出 HTTP 请求并聚合数据,这可以通过 APIM 中的策略实现。
1.3 命令查询职责分离(CQRS)模式
在之前使用直接 HTTP 调用的方法中,聚合器基于 HTTP 请求。但当性能是主要因素时,这种方法可能不适用,因为服务可能会遇到网络延迟和请求超时。CQRS 模式将数据存储的读取和更新操作分离。
例如,
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



