[微服务]API网关(API Gateway)

工作中使用了微服务架构,接下来的一段时间里,我会写一系列的文章来介绍微服务架构,同时我也会在github上写一个microservices的应用框架(地址会在后续文章给出)。

这篇文章主要讲述了微服务架构中的API Gateway。

 

翻译和整理自:

 

  • http://microservices.io/patterns/apigateway.html

 

一、问题

 

微服务架构应用的客户端如何访问个体的service?

 

 

二、强制条件

 

  • 微服务提供的API的粒度与客户端所需要的不一样。微服务一般提供细粒度的API, 意味着客户端需要与多个服务进行交互。

  • 不同的客户端需要不同的数据。比如说,桌面浏览器比手机版本的APP需要更细粒度的数据。

  • 服务的数量和地址动态改变。

  • 服务的分割会随着时间改变,这对于客户端应该是隐藏的。

 

三、解决方案

 

实现一个API Gateway, 这是所有客户端的唯一入口点。

 

 

API Gateway用两种方式来处理请求,一种是直接把请求转发到合适的service,另一种是写一些业务逻辑,跨多个service。

 

与一刀切的API对应的是,API Gateway可以暴露给不同的客户端不同的API。API Gateway也可以实现安全机制,验证客户端是被授权的。

 

 

示例:

 

 

四、结果

 

优点:

  • 把客户端与应用是怎么分割成微服务相隔离
  • 客户端不需要知道service实例的地址
  • 提供给不同的客户端优化的API
  • 减少请求环路、简化客户端逻辑。比如说,API Gateway使得客户端用一次请求就可以从多个service处获取数据。

缺点:

  • 增加了复杂性

应用场景举例:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值