使微服务实战(二):使用API Gateway

转自:http://www.open-open.com/lib/view/open1437547788943.html#articleHeader1
API网关:http://microservices.io/patterns/apigateway.html

参考资料

http://www.infoq.com/cn/articles/boot-microservices
https://www.douban.com/note/507823285/?type=rec
http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=208452217&idx=1&sn=a5c5b6436010182a260b90af2cd783e2&key=c76941211a49ab58de2b7a92851ea8f98e51b7d34fc223bb7ee8a3ac62fe07bdf198738e0db03d38e3d43b600ebf37dd&ascene=0&uin=MjMyNzA5NjUwMA%3D%3D&devicetype=iMac+MacBookPro11%2C1+OSX+OSX+10.10.4+build

引言

详情页

虽然这是个智能手机应用,产品详情页面也显示了大量的信息。例如,该页面不仅包含基本的产品信息(如名称、描述、价格),而且还显示了如下内容:

  • 购物车中的件数
  • 订单历史
  • 客户评论
  • 低库存预警
  • 送货选项
  • 各种推荐,包括经常与该产品一起购买的其它产品,购买该产品的客户购买的其它产品,购买该产品的客户看过的其它产品。
  • 可选的购买选项。

当使用单体应用程序架构时,移动客户端将通过向应用程序发起一次REST调用(GET api.company.com/productdetails/)来获取这些数据。负载均衡器将请求路由给N个相同 的应用程序实例中的一个。然后,应用程序会查询各种数据库表,并将响应返回给客户端。
相比之下,当使用微服务架构时,产品详情页面显示的数据归多个微服务所有。下面是部分可能的微服务,它们拥有要显示在示例中产品详情页面上的数据:

  • 购物车服务——购物车中的件数
  • 订单服务——订单历史
  • 目录服务——产品基本信息,如名称、图片和价格
  • 评论服务——客户的评论
  • 库存服务——低库存预警
  • 送货服务——送货选项、期限和费用,这些单独从送货方的API获取
  • 推荐服务——建议的产品

我们需要决定移动客户端如何访问这些服务。让我们看看都有哪些选项。

客户端与微服务直接通信

从理论上讲,客户端可以直接向每个微服务发送请求。每个微服务都有一个公开的端点(https

版权声明:本文为zhangshihai1232原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zhangshihai1232/articles/6228762.html