什么是网关?
API Gateway 是系统的唯一对外的入口,介于客户端和服务端之间的中间层,处理非业务功能提供路由请求、鉴权、监控、缓存、限流等功能(类似所有请求都会经过的过滤器,类似演唱会过安检,检票员还可以监控有多少人进场,检查进场人员是否合法)(比如下单操作需要用户登陆,在APIGatewy层判断用户是否登陆)
统一接口
智能路由(根据用户发送请求路径,请求对应服务)
AB测试、灰度测试
负载均衡、容灾处理(可以知道哪个节点压力大,分发到负载小的节点服务上)
日志埋点(类似Nignx日志)(每日访问量、服务调用时间)
流量监控
限流处理、服务降级(如果后端服务超过某一个值,在请求时就阻断掉)
安全防护
鉴权处理、监控( 判断哪些服务需要用户登陆)
机器网络隔离 (网关通过内网对服务进行交互,对用户请求外网ip交互)
主流的网关
zuul:时Netflix开源的微服务网关,和Eureka,Ribbon,Hystrix等组件配合使用,Zuul2.0比1.0的性能提高很多
kong:由Mashape公司开源的,基于Nginx的API gateway
源的,基于Nginx的API gateway
nginx+lua:是一个高性能的HTTP和反向代理服务器,lua是脚本语言,让Nginx执行lua脚本,并且高并发,非阻塞的处理各种请求