为什么要网关? 微服务下一个系统被拆分为多个服务,但是像 安全认证,流量控制,日志,监控等功能是每个服务都需要的,没有网关的话,我们就需要在每个服务中单独实现,这使得我们做了很多重复的事情并且没有一个全局的视图来统一管理这些功能。
综上:一般情况下,网关一般都会提供请求转发、安全认证(身份/权限认证)、流量控制、负载均衡、容灾、日志、监控这些功能。
上面介绍了这么多功能实际上网关主要做了一件事情:请求过滤 。权限校验、流量控制这些都可以通过过滤器实现,请求转也是通过过滤器实现的。
你知道有哪些常见的网关系统? 我所了解的目前经常用到的开源 API 网关系统有:
Kong Netflix zuul
项目准备
nginx配置
反向代理
高可用网关还会用到,后续会讲到。
断言:根据一系列规则匹配上了,开始路由到目标URI