【面试突击】网关系统面试实战

🌈🌈🌈🌈🌈🌈🌈🌈
欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术 的推送
发送 资料 可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景中间件系列笔记编程高频电子书

文章导读地址:点击查看文章导读!

感谢你的关注!

🍁🍁🍁🍁🍁🍁🍁🍁

网关面试实战

技术选型方面

这一块的话,主要是考察对 网关技术 的了解,比如你使用了分布式系统,那你整个系统前肯定是有一个网关的

那你是如何去对网关进行技术选型的呢?这其实就是考察你对常见的几种网关是否熟悉,常用的几种网关以及优缺点如下:

  • Nginx:性能高,成熟,但是可扩展性不足,并且 Nginx 使用 c 编写,很难根据源码去进行定制化开发
  • Zuul:Zuul 有两个大的版本 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 的话,表示是新部署的系统,那么就可以根据这个标志位判断哪些机器上部署的系统是新版本了,将流量散发到这些新版本的机器上去

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/343712.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】206. 反转链表(简单)——代码随想录算法训练营Day01

题目链接:206. 反转链表 题目描述 206. 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入&#xff1…

Linux tail命令详解和高级用法举例

目 录 一、概述 二、tail命令解释 1.命令格式; 2.功能 3.选项 4.选项的基本用法 (1) 显示行号 (2)忽略指定字符数 (3) 不显示文件名 三…

leetcode 动态规划(爬楼梯、零钱兑换、完全平方数)

70. 爬楼梯&#xff08;进阶版&#xff09; 卡码网&#xff1a;57. 爬楼梯(opens new window) 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬至多m (1 < m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 注意&#xff1a;给定 n 是一个正…

UTONMOS:探索元宇宙,开启未来游戏新篇章

在元宇宙的世界里&#xff0c;游戏不再只是消遣&#xff0c;而是一个全新的互动世界&#xff0c;等待你来探索&#xff01; 逼真的虚拟现实技术&#xff0c;让你沉浸在充满想象力的游戏世界中&#xff0c;体验前所未有的刺激和乐趣。 与来自全球的玩家互动交流&#xff0c;结…

CSS 中的伪装大师:伪类和伪元素的奇妙世界

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

C语言基础语法跟练 day3

31、不使用累计乘法的基础上&#xff0c;通过移位运算&#xff08;<<&#xff09;实现2的n次方的计算。 #include <stdio.h> int main() {int i 0;scanf("%d",&i);printf("%d",1<<i);return 0; } 32、问题&#xff1a;一年约有 3.…

C++STL

STL基本概念 standard template library : 标准模板库STL从广义上可以分为&#xff1a; 容器(container) 算法(algorithm) 迭代器(iterator)。 容器和算法之间通过迭代器进行无缝连接。 STL几乎所有的代码都采用了模板类或者模板函数STL六大组件 STL的容器 STL的容器就是将运…

Open3D 截取感兴趣的点云部分

import time import open3d as o3d; import numpy as np; import matplotlib.pyplot as plt from scipy.signal import find_peaks#坐标 mesh_coord_frame o3d.geometry.TriangleMesh.create_coordinate_frame(size355, origin[0, 0, 0]) #mesh_coord_frame mesh_coord_frame…

NAND系统性能提升常见方案

随着NAND的发展&#xff0c;针对NAND系统性能提升&#xff0c;业内目前主要的做法有以下几种方案&#xff1a; 1.提升总线频率和优化AC时序&#xff1a; 提高NAND闪存接口的工作频率可以显著加快数据传输速度。通过不断改进工艺和技术&#xff0c;缩短了信号稳定时间、降低了延…

网站建设网络设计营销类网站模板

★安装环境要求★ 服务器&#xff1a;Linux / Apache / IIS PHP版本&#xff1a;5.4及5.4以上&#xff0c;完美支持php7.4 MYSQL版本&#xff1a;5.0以上 PS&#xff1a;php版本推荐5.6&#xff0c;mysql推荐使用5.7 ★模板安装步骤★ 1、请将源码包里面的所有文件和文件夹上…

Agisoft Metashape 基于影像的外部点云着色

Agisoft Metashape 基于影像的外部点云着色 文章目录 Agisoft Metashape 基于影像的外部点云着色前言一、添加照片二、对齐照片三、导入外部点云四、为点云着色五、导出彩色点云前言 本教程介绍了在Agisoft Metashape Professional中,将照片中的真实颜色应用于从不同源获取的…

【野火i.MX6NULL开发板】挂载 NFS 网络文件系统

0、前言 参考资料&#xff1a; &#xff08;误人子弟&#xff09;《野火 Linux 基础与应用开发实战指南基于 i.MX6ULL 系列》PDF 第22章 参考视频&#xff1a;&#xff08;成功&#xff09; https://www.bilibili.com/video/BV1JK4y1t7io?p26&vd_sourcefb8dcae0aee3f1aab…