使用 API 网关构建微服务
本期内容 微服务系列文章的第一篇介绍了微服务架构模式,讨论了使用微服务的优缺点,以及为什么微服务虽然复杂度高却是复杂应用程序的理想选择。 在决定以一组微服务来构建自己的应用时,你需要确定应用客户端如何与微服务交互。 在单体式程序中,通常只有一组冗余的或者负载均衡的服务提供点。在微服务架构中,每一个微服务暴露一组细粒度的服务提供点。在本篇文章中,我们来看它如何影响客户端到服务端通信,并提出一种使用 API 网关的方法。 简要概述 让我们想象一下,你要为一个购物应用程序开发一个原生移动客户端。你很可能需要实现一个产品详情页面,展示任何指定商品的信息。 下图展示了 Amazon Android 应用在商品详情页显示的内容。 即使只是个智能手机应用,产品详情页面也显示了大量的信息。该页面不仅包含基本的产品信息(如名称、描述、价格),而且还显示了如下内容: 购物车中的商品数量 历史订单 客户评论 低库存预警 送货选项 各种推荐,包括经常与该商品一起购买的其它商品、购买该商品的客户购买的其它商品、购买该商品的客户看过的其它商品 其它的购物选择 使用单体应用程序架构时,移动客户端通过向应用程序发起一次 REST 调用(GET api.company.com/productdetails/)来获取这些数据。负载均衡器将请求路由给 N 个相同的应用程序实例中的其中之一。然后