1.你们网关用的什么?Gateway zuul
2.你们网关里面写什么代码?
跨域,路由(动态路由,负载均衡)ip黑名单拦截,Token的校验,对请求进行过滤(请求参数校验) 对响应做处理(状态码,响应头) 熔断 限流
微服务的网关,可以很好地将具体的服务和浏览器隔离开,只暴露网关的地址给到浏览器
在微服务网关中,可以很好的实现校验认证,负载均衡(lb),黑名单拦截,限流等。
12.1Gateway和zuul的区别 ZuulFilter
Zuul也是web网关,本质上就是一组过滤器,按照定义的顺序,来执行过滤操作
二者的区别:
1.两者均是web网关,处理的是http请求
2.Gateway是springcloud官方的组件,zuul则是netflix的产品
springcloud,netflix ,alibaba(nacos,sentinel,dubbo zk,seata,rocketmq)
3.gateway在spring的支持下,内部实现了限流、负载均衡等,扩展性也更强,但同时也限制了仅适合于Spring Cloud套件。而zuul则可以扩展至其他微服务框架中,其内部没有实现限流、负载均衡等。
4.Gateway(Netty NIO)很好的支持异步(spring5.x ,webFlux 响应式编程默认是异步的),而zuul1.0仅支持同步 BIO zuul2.0以后也支持异步了
12.2Nginx在微服务中的地位
最后简单聊一下nginx,在过去几年微服务架构还没有流行的日子里,nginx已经得到了广大开发者的认可,其性能高、扩展性强、可以灵活利用lua脚本构建插件的特点让人没有抵抗力。(nginx的请求转发 最大并发是多个次,每秒5w-10w左右) 3w左右
有一个能满足我所有需求还很方便我扩展的东西,还免费,凭啥不用??
但是,如今很多微服务架构的项目中不会选择nginx,我认为原因有以下几点:
微服务框架一般来说是配套的,集成起来更容易
如今微服务架构中,仅有很少的公司会面对无法解决的性能瓶颈,而他们也不会因此使用nginx,而是选择开发一套适合自己的微服务框架
spring boot对于一些模板引擎如FreeMarker、themleaf的支持是非常好的,很多应用还没有达到动、静态文件分离的地步,对nginx的需求程度并不大。
无论如何,nginx作为一个好用的组件,最终使不使用它都是由业务来驱动的,只要它能为我们方便的解决问题,那用它又有何不可呢?
12.3关于限流,面试不会直接问,而是间接来问 问 不卖超
比如:如果在抢购过程中,用户量请求非常大,怎么确保商品不会卖超
一般人只会在意商品卖超,Redis 单线程,而忘记了限流的重要性
12.4健康状态检查等
健康检查的依赖

<!--        健康检查的依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

添加配置文件

management:
    endpoints:
        web:
            exposure:
                include: '*'   #暴露检查的端点

kubesphere 网关和应用路由 网关zuul和gateway_gateway