不但如此,还需要将该类加入到 Spring 进行管理:
新建了 FilterConf
类:
@Configuration @Component public class FilterConf { @Bean public RequestFilter filter(){ return new RequestFilter() ; } }
这样重启之后就可以看到效果了:
不传 token 时:
传入 token 时:
可见一些鉴权操作是可以放到这里来进行统一处理的。
其余几个过滤器也是大同小异,可以根据实际场景来自定义。
Zuul 高可用
Zuul 现在既然作为了对外的第一入口,那肯定不能是单节点,对于 Zuul 的高可用有以下两种方式实现。
Eureka 高可用
第一种最容易想到和实现:
我们可以部署多个 Zuul 节点,并且都注册于 Eureka ,如下图:
这样虽然简单易维护,但是有一个严重的缺点:那就是客户端也得注册到 Eureka 上才能对 Zuul 的调用做到负载,这显然是不现实的。
所以下面这种做法更为常见。
基于 Nginx 高可用
在调用 Zuul 之前使用 Nginx 之类的负载均衡工具进行负载,这样 Zuul 既能注册到 Eureka ,客户端也能实现对 Zuul 的负载,如下图:
总结
这样在原有的微服务架构的基础上加上网关之后另整个系统更加完善了,从网关的设计来看:大多数系统架构都有分层的概念,不能解决问题那就多分几层🤓。
博客:crossoverjie.top。