Zuul是什么
Zuul作为Spring Cloud Netflix的网关技术实现。
Spring Cloud Netflix主要使用Zuul做路由转发、限流服务、转发等。
Zuul之路由转发
Zuul应用在微服务场景,每个微服务其实指的就是一个SpringBoot工程,那么每个SpringBoot工程就会有单独的Web容器,则每个Web容器应当有单独的端口(有些不同网络,还会有不同IP地址)应用。
为了使用户更加方便快捷的定位到服务地址,则将所有地址统一到网关地址和端口,然后网关进行统一转发。
例如:
A服务地址为:http://AAA:1000/test
B服务地址为:http://BBB:1001/test
网关地址为:http://Zuul:80/test/{A}
用户只需带参数访问我们的网关,网关进行匹配,转发到对应的服务即可,这就是路由转发功能。
Zuul之限流服务
Zuul还具备限流服务功能,限制规定时间内,客户端的访问量。
zuul: ratelimit: key-prefix: pig-ratelimite enabled: true repository: REDIS behind-proxy: true policies: pig-admin-service: limit: 2 quota: 1 refresh-interval: 3
Zuul之过滤
Zuul具备过滤功能,主要是对一些没有鉴权的服务进行拦截。
例如:
A请求响应,但是该响应需要登录才可访问,我们可以继承过滤器实现检索A是否认证。