为了处理微服务架构,它通常与反向代理(例如 nginx 或 apache httpd)一起使用,并且 使用 API 网关模式来实现横切关注点。有时反向代理会做 API 网关的工作。
很高兴看到这两种方法之间的明显差异。看起来 API 网关使用的潜在好处是调用多个微服务并聚合结果。API 网关的所有其他职责都可以使用反向代理来实现。如:
- 身份验证(可以使用 nginx LUA 脚本完成);
- 运输安全。它本身的反向代理任务;
- 负载均衡
- ...
所以基于此有几个问题:
- 同时使用 API 网关和反向代理是否有意义(例如请求 -> API 网关 -> 反向代理(nginx) -> 具体微服务)?在什么情况下?
- 可以使用 API 网关实现而不能通过反向代理实现的其他差异是什么,反之亦然?