Spring Cloud-Zuul
1、什么是网关?
网关相当于一个网络服务架构的入口,所有网络请求必须通过网关转发到具体的服务。
2、网关的作用是什么?
统一管理微服务请求,权限控制、负载均衡、路由转发、监控、安全控制黑名单和白名单等。
3、Spring Cloud Zuul的作用?
- Zuul是Spring Cloud提供的成熟的路由方案,他会根据请求的路径不同,网关会定位到指定的微服务中,并代理请求道不同的微服务接口,它对外隐蔽了微服务的真正接口地址。Spring Cloud三个重要的概念:动态路由表,路由定位,反向代理。
- 动态路由表:Zuul支持Eureka路由,手动配置路由,这两种都支持自动更新;
- 路由定位:根据请求路径,Zuul有自己的一套定位服务规则以及路由表达式匹配;
- 反向代理:客户端请求到路由网关,网关受理之后,在对目标发送请求,拿到响应之后再给客户端。
- 它可以和Eureka、Ribbon和Hystrix等组件配合使用。
- Zuul的应用场景:对外暴露、权限校验、读物聚合和日志审计等。
4、网关与过滤器的区别?
网关是对所有服务的请求进行分析过滤,过滤器是对单个服务而言。
5、常用的网关框架有哪些?
- Nginx
- Zuul
- Gateway
6、Zuul与Ngnix有什么区别
Zuul是Java语言实现的,主要为Java服务提供网关服务,尤其在微服务架构中可以更加灵活的对网关进行操作。Nginx是使用C语言实现,性能高于Zuul,但是实现自定义操作需要熟悉lua语言,对程序员要求较高,可以使用Nginx做Zuul集群。
7、既然Nginx可以实现网关?为什么还需要使用Zuul框架?
Zuul是SpringCloud集成的网关,使用Java语言编写,可以对SpringCloud架构提供更灵活的服务。
8、如何设计一套API接口?
考虑到API接口的分类可以将API接口分为开发API接口和内网API接口,内网API接口用于局域网,为内部服务器提供服务。开放API接口用于对外部合作单位提供接口调用,需要遵循Oauth2.0权限认证协议。同时还需要考虑安全性、幂等性等问题。
9、ZuulFilter常用有哪些方法?
- Run():过滤器的具体业务逻辑;
- shouldFilter():判断过滤器是否有效;
- fifilterOrder():过滤器执行顺序;
- fifilterType():过滤器拦截位置。
10、如何实现动态Zuul网关路由转发
通过path配置拦截请求,通过ServiceId到配置中心获取转发的服务列表,Zuul内部使用Ribbon实现本地负载均衡和转发。
11、Zuul网关如何搭建集群
使用Nginx的upstream设置Zuul服务集群,通过location拦截请求并转发到upstream,默认使用轮询机制对Zuul集群发送请求。
浙公网安备 33010602011771号