首页 课程 师资 教程 报名

Java网关面试题,全栈架构师笔记

  • 2023-02-14 16:17:26
  • 1214次 动力节点

1.什么是网关?

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

2.网关的作用是什么?

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

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

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

1)动态路由表:Zuul支持Eureka路由,手动配置路由,这俩种都支持自动更新

2)路由定位:根据请求路径,Zuul有自己的一套定位服务规则以及路由表达式匹配

3)反向代理:客户端请求到路由网关,网关受理之后,在对目标发送请求,拿到响应之后在给客户端,它可以和Eureka,Ribbon,Hystrix等组件配合使用。

4.Zuul的应用场景?

对外暴露,权限校验,服务聚合,日志审计等

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

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

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

Nginx、Zuul、Gateway

7.Zuul与Nginx有什么区别?

Zuul是java语言实现的,主要为java服务提供网关服务,尤其在微服务架构中可以更加灵活的对网关进行操作。Nginx是使用C语言实现,性能高于Zuul,但是实现自定义操作需要熟悉lua语言,对程序员要求较高,可以使用Nginx做Zuul集群。

8.既然Nginx可以实现网关,为什么还需要使用Zuul框架?

Zuul是SpringCloud集成的网关,使用Java语言编写,可以对SpringCloud架构提供更灵活的服务。

9.如何设计一套API接口?

考虑到API接口的分类可以将API接口分为开发API接口和内网API接口,内网API接口用于局域网,为内部服务器提供服务。开放API接口用于对外部合作单位提供接口调用,需要遵循Oauth2.0权限认证协议。同时还需要考虑安全性、幂等性等问题。

10.ZuulFilter常用有那些方法?

crun():过滤器的具体业务逻辑

shouldFilter():判断过滤器是否有效

filterOrder():过滤器执行顺序

filterType():过滤器拦截位置

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

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

12.Zuul网关如何搭建集群?

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

13.什么是SpringCloudGateway?

SpringCloudGateway是SpringCloud官方推出的第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。使用了一个RouteLocatorBuilder的bean去创建路由,除了创建路RouteLocatorBuilder可以让你添加各种predicates和filters,predicates断言的意思,顾名思义就是根据具体的请求的规则,由具体的route去处理,filters是各种过滤器,用来对请求做各种判断和修改。

以上就是“Java网关面试题,全栈架构师笔记”,你能回答上来吗?如果想要了解更多的Java面试题相关内容,可以关注动力节点Java官网。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交