仿牌外贸网站建设,最新WordPress主题破解完美去,企业网址下载,分类目录网站做排名#x1f308;#x1f308;#x1f308;#x1f308;#x1f308;#x1f308;#x1f308;#x1f308; 欢迎关注公众号#xff08;通过文章导读关注#xff1a;【11来了】#xff09;#xff0c;及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理… 欢迎关注公众号通过文章导读关注【11来了】及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景、中间件系列笔记和编程高频电子书 文章导读地址点击查看文章导读 感谢你的关注 网关面试实战
技术选型方面
这一块的话主要是考察对 网关技术 的了解比如你使用了分布式系统那你整个系统前肯定是有一个网关的
那你是如何去对网关进行技术选型的呢这其实就是考察你对常见的几种网关是否熟悉常用的几种网关以及优缺点如下
Nginx性能高成熟但是可扩展性不足并且 Nginx 使用 c 编写很难根据源码去进行定制化开发ZuulZuul 有两个大的版本 Zuul1 和 Zuul2是基于 Java 实现的核心功能比较简单如果需要一些灰度发布、限流、动态路由之类的功能需要自己二次开发Spring Cloud Gateway目的就是为了替换 Zuul1功能比较完善性能相对于 Zuul1 来说好了很多自研网关目前许多互联网都自研自己的网关自研网关的好处就是可以根据自己业务特点提供一个定制化、高性能、可扩展的 API 网关解决方案例如美团技术团队就自研了 Shepherd API 网关可以参考文章https://tech.meituan.com/2021/05/20/shepherd-api-gateway.html
上边只是简单的提到了一些优缺点如果你去面试并且在简历中有较多的分布式相关的项目一定要去对这些技术选型好好了解一下不要对每个问题都只是知道个大概再问就什么不知道了
网关的核心功能
那么如果系统中使用了网关你是希望去使用它的什么功能呢一定要了解网关的 应用场景因为很可能讲完这个之后会问你让你自己设计一个网关你会怎么设计呢这不正是考察网关的功能以及对每个功能点如何进行设计的吗
这里将网关的功能按照重要顺序列一下重要的列在前边
动态路由新上线某个服务可以动态的将请求路径和服务的映射关系 热加载到网关 里去服务增加或减少机器网关也可以 自动感知到灰度发布新功能正式上线之前将新功能在少量机器上进行发布测试授权认证对发送到网关的请求进行授权认证限流熔断性能监控监控每个接口的 耗时、成功率、QPS系统日志打印接口请求日志数据缓存
网关部署的机器配置
这是属于网关系统在生产环境部署的内容了这个之前在讲注册中心也讲过机器配置的问题这里再啰嗦一下多看看就记住了
常用的机器配置就是 4C8G、8C16G、16C32G、32C64G
那么像注册中心、网关系统这种都是属于 基础架构类型的系统一定要上配置高一点的机器8C16G 以上的
网关系统部署在 8C16G 的机器上每秒钟抗几千的请求是可以的
16C32G 的话抗上万的请求也是没问题的
将机器配置和对应的请求量级大概可以对应起来就可以
并且网关系统一般是使用集群部署的通过 Nginx 将请求再分散到多个网关系统上可以抗更多请求因为网关系统一般不会是整个系统的性能瓶颈
网关在整个系统中所处的地位如图所示 网关中一些核心技术实现思路
可以去了解一下网关中核心技术是如何实现的这里就以 动态路由 和 灰度发布 来简单说一下实现思路
动态路由
动态路由目的就是让 网关系统可以感知到服务上下线你可以想一下学到的哪一个技术可以实现这个功能呢
这个不就是 通知 功能吗
那么直接通过 RocketMQ 就可以实现了新服务上线发送一个 MQ 通知让网关系统去拉取最新的服务地址如果机器下线也可以发送 MQ 通知让网关系统剔除掉这个服务即可
灰度发布
这里说一下实现灰度发布的一个思路
首先需要创建一张灰度发布表包含字段如下
id int(11)
service_id varchar(255)
path varchar(255)
enable_gray_release int(11)通过定时任务去查灰度发布表存入 Map 中
再做一个灰度发布的 拦截器比对请求路径是否启用灰度发布如果启用灰度发布就将流量转发到新部署的机器上去
这里将新版本的系统设置一个标志位比如 ReleaseVersion如果这个值为 NEW 的话表示是新部署的系统那么就可以根据这个标志位判断哪些机器上部署的系统是新版本了将流量散发到这些新版本的机器上去