关于API gateway

本文讨论了在微服务架构中,客户端如何与多个微服务交互,提出了直接通信和使用API Gateway两种方式。API Gateway作为单一入口点,封装了内部系统架构,提供定制化的API,处理请求路由、组合和协议转换。它简化了客户端代码,但需要考虑性能、可扩展性、服务发现和故障处理等问题。Netflix的API Gateway和Hystrix库是实现中的重要参考。
摘要由CSDN通过智能技术生成

当选择将应用程序构建为一组微服务时,需要确定应用程序的客户端如何与微服务进行交互。 对于单体应用程序而言,只有一组(通常是负载平衡的)endpoint。 但是,在微服务架构中,每个微服务都公开了一组通常是细粒度的endpoint。 这会如何影响客户端到应用程序的通信呢。

假设我们正在为购物应用程序开发本机移动客户端。 我们可能需要实现一个产品详细信息页面,该页面显示有关给定产品的信息。例如,下图显示了在应用程序中滚动产品详细信息时将看到的内容。

Indexed elements of Amazon's mobile app for Android, as they appear on a mobile phone screen

即使这是智能手机应用程序,“产品详细信息”页面也会显示很多信息。例如,不仅有基本的产品信息(例如名称,描述和价格),而且此页面还显示:

  1. 购物车中的物品数量
  2. 订单历史
  3. 顾客评论
  4. 库存不足警告
  5. 送货选项
  6. 各种建议,包括该产品经常购买的其他产品,购买此产品的客户购买的其他产品以及购买此产品的客户查看的其他产品
  7. 替代购买选项

使用整体应用程序体系结构时,移动客户端将通过对应用程序进行单个REST调用(GET api.company.com/productdetails/productId)来检索此数据。负载平衡器将请求路由到N个相同的应用程序实例之一。然后,应用程序将查询各种数据库表,并将响应返回给客户端。

相反,在使用微服务架构时,产品详细信息页面上显示的数据由多个微服务拥有。以下是一些可能的微服务,这些微服务拥有在示例产品详细信息页面上显示的数据:

  1. 购物车服务–购物车中的物品数量
  2. 订单服务–订单历史记录
  3. 目录服务–基本产品信息,例如其名称,图像和价格
  4. 审核服务–客户评论
  5. 库存服务–库存不足警告
  6. 运送服务–运送选项,期限和费用与运送提供商的API分开提取
  7. 推荐服务–建议项目

如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值