spring cloud实战之API网关zuul

1 为什么需要API网关

API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题:

  1. 客户端会多次请求不同的微服务,增加了客户端的复杂性。
  2. 存在跨域请求,在一定场景下处理相对复杂。
  3. 认证复杂,每个服务都需要独立认证。
  4. 难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将会很难实施。
  5. 某些微服务可能使用了防火墙 / 浏览器不友好的协议,直接访问会有一定的困难。

使用 API 网关后的优点如下:

  • 易于监控。可以在网关收集监控数据并将其推送到外部系统进行分析。
  • 易于认证。可以在网关上进行认证,然后再将请求转发到后端的微服务,而无须在每个微服务中进行认证。

  • 减少了客户端与各个微服务之间的交互次数。

计算机的世界,所有的问题都可以通过两个思路解决:

1. 增加中间层 比如持久层,数据库中间件等

2.分而治之的思想 。比如hash分解大文件

微服务中,大量微服务存在共同的逻辑处理内容,比如鉴权,限流,日志等内容。

2 Zuul架构




* Pre filter

请求到达servcie之前进行。比如身份验证,log记录

*Routing

转发请求给目标服务

*Post

从origin server返回后执行

*Error

发生错误时执行

3 与Eureka整合使用

soso


猜你喜欢

转载自blog.csdn.net/hanruikai/article/details/80909836