1. 什么是网关?

网关相当于一个网络服务架构的入口,所有网络请求必须通过网关转发到具体的服务。

2. 网关的作用是什么

统一管理微服务请求,权限控制、负载均衡、路由转发、监控、安全控制黑名单和白名单等。

3. 什么是Spring Cloud Zuul(服务网关)

Zuul是对SpringCloud提供的成熟对的路由方案,他会根据请求的路径不同,网关会定位到指定的微服务,并代理请求到不同的微服务接口,他对外隐蔽了微服务的真正接口地址。 三个重要概念:动态路由表,路由定位,反向代理:动态路由表:Zuul支持Eureka路由,手动配置路由,这俩种都支持自动更新

路由定位:根据请求路径,Zuul有自己的一套定位服务规则以及路由表达式匹配反向代理:客户端请求到路由网关,网关受理之后,在对目标发送请求,拿到响应之后在给客户端它可Eureka,Ribbon,Hystrix等组件配合使用。

Zuul的应用场景:对外暴露,权限校验,服务聚合,日志审计等

4. 网关与过滤器有什么区别

网关是对所有服务的请求进行分析过滤,过滤器是对单个服务而言。

5. 常用网关框架有那些?

Nginx、Zuul、Gateway

6. Zuul与Nginx有什么区别?

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():判断过滤器是否有效

filterOrder():过滤器执行顺序

filterType():过滤器拦截位置

10. 如何实现动态Zuul网关路由转发

通过path配置拦截请求,通过ServiceId到配置中心获取转发的服务列表,Zuul内部使用Ribbon实现本地负载均衡和转发。

11. Zuul网关如何搭建集群

使用Nginx的upstream设置Zuul服务集群,通过location拦截请求并转发到upstream,默认使用轮询机制对Zuul集群发送请求。

更多推荐

2023年springcloud面试题之zuul网关(第三部分)