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

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

 

翻译和整理自:

 

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

 

一、问题

 

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

 

 

二、强制条件

 

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

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

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

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

 

三、解决方案

 

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

 

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

 

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

 

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

 

 

示例:

 

 

四、结果

 

优点:

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

缺点:

  • 增加了复杂性

应用场景举例:

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

相关文章:

  • 2021-09-23
  • 2021-11-26
  • 2021-04-14
  • 2022-01-02
  • 2021-09-21
  • 2021-07-21
  • 2021-10-16
  • 2021-05-23
猜你喜欢
  • 2021-06-15
  • 2021-11-17
  • 2021-07-17
  • 2021-12-03
  • 2021-05-06
  • 2021-05-23
相关资源
相似解决方案