当前位置: 首页 > news >正文

【前端场景题】如何应对页面请求接口的大规模并发问题

在这里插入图片描述

如何应对页面请求接口的大规模并发问题,尤其是前端方面的解决方案,并且需要给出详细的代码解释。首先,我需要仔细阅读我搜索到的资料,找出相关的信息,然后综合这些信息来形成答案。

首先看,它提到前端优化策略包括缓存数据、请求合并与节流防抖。和都涉及前端并发请求的具体实现方法。例如,中提到使用缓存Promise对象来合并重复请求,避免重复发送。则推荐使用p-limit插件来控制并发数量。则设计了一个并发请求限制的方案,收集接口列表并控制并发数。讨论了防抖节流、分页加载等方案,并提到了具体的代码实现。

另外,和提到了后端的一些策略,比如使用内存操作、限制账号请求数量、设置过载保护等,但问题主要是前端解决方案,所以可能需要更多关注前端我搜索到的资料。

接下来,我需要综合这些信息,整理出前端解决大规模并发的主要方法,比如请求合并、节流防抖、Promise缓存、并发控制库如p-limit的使用,以及分页加载和懒加载等。然后需要给出具体的代码示例,比如如何实现请求合并、节流防抖函数,或者使用p-limit来限制并发数。

中的代码示例比较具体,它使用一个数组来缓存Promise,定期清理,并通过checkPromise函数来检查是否存在相同的请求。这可以避免同一请求的多次并发发送。中的p-limit示例可以控制同时进行的请求数量,避免浏览器过载。

另外,提到减少HTTP请求、异步请求和启用浏览器缓存,这也需要在前端优化中考虑。比如合并JS/CSS文件,使用缓存头,以及异步加载数据。

可能需要注意的冲突是不同证据中提到的不同方法,比如的Promise缓存和的并发控制,但这两者可以结合使用,比如先合并重复请求,再控制并发数量。

现在需要将这些方法组织起来,详细说明每种方法的实现,并给出对应的代码示例,同时引用我搜索到的资料来源。例如:

  1. 请求合并与Promise缓存:使用一个缓存对象存储正在进行的请求,当相同请求再次发起时返回已有的Promise。参考的代码。

  2. 节流与防抖:对于频繁触发的事件(如搜索输入),使用防抖函数延迟请求,减少请求次数。和提到这点,可以给出防抖函数的代码示例。

  3. 并发控制:使用p-limit等库限制同时进行的请求数量,和有相关实现。

  4. 分页加载与懒加载:和提到分页和懒加载,减少一次性加载大量数据的需求。

  5. 缓存策略:利用本地存储或浏览器缓存,和提到设置缓存头和localStorage的使用。

在代码部分,需要详细说明每个方法的实现步骤,例如如何创建缓存对象,如何实现防抖函数,如何配置p-limit等。同时,每个部分需要标注引用的证据编号,比如等。

最后,总结这些方法的综合应用,如何有效解决前端的大规模并发问题。确保答案结构清晰,每个解决方案都有对应的代码示例和证据支持。

针对页面请求接口大规模并发问题的前端解决方案,需综合运用请求合并、并发控制、缓存优化等技术手段。以下为详细实现方案及代码解析:


一、请求合并与Promise缓存

通过缓存正在进行的请求Promise,避免重复发送相同请求,适用于多模块同时调用同一接口的场景。

const promiseCache = new Map();
const CACHE_CLEAR_INTERVAL = 5 * 60 * 1000; // 5分钟清理一次// 定期清理缓存防止内存泄漏
setInterval(() => {promiseCache.clear();
}, CACHE_CLEAR_INTERVAL);function getRequestKey(url, params) {return `${url}_${JSON.stringify(params)}`;
}async function zGet(url, params, mergeRequest = true) {const key = getRequestKey(url, params);// 命中缓存直接返回Promiseif (mergeRequest && promiseCache.has(key)) {return promiseCache.get(key);}// 创建新请求并缓存const promise = axios.get(url, { params }).then(res => {promiseCache.delete(key); // 请求完成后移除缓存return res.data;}).catch(err => {promiseCache.delete(key);throw err;});promiseCache.set(key, promise);return promise;
}

实现原理:通过Map结构缓存请求的唯一标识(URL+参数),后续相同请求直接复用缓存的Promise。


二、节流与防抖

控制高频触发请求的执行频率,例如搜索框输入场景。

// 防抖函数:延迟执行,仅执行最后一次操作
function debounce(fn, delay = 500) {let timer = null;return function (...args) {clearTimeout(timer);timer = setTimeout(() => fn.apply(this, args), delay);};
}// 节流函数:固定时间间隔执行一次
function throttle(fn, interval = 1000) {let lastTime = 0;return function (...args) {const now = Date.now();if (now - lastTime >= interval) {fn.apply(this, args);lastTime = now;}};
}// 使用示例:搜索框输入
const searchInput = document.getElementById('search');
const searchHandler = () => zGet('/api/search', { keyword: searchInput.value });
searchInput.addEventListener('input', debounce(searchHandler, 300));

三、并发控制

使用p-limit库限制同时进行的请求数量,避免浏览器阻塞。

import pLimit from 'p-limit';// 限制并发数为5
const limit = pLimit(5);async function fetchDetails(ids) {const promises = ids.map(id => limit(() => axios.get(`/api/details/${id}`).then(res => res.data)));return Promise.all(promises);
}// 调用示例:批量获取详情
const ids = [1, 2, 3, 4, 5, 6, 7];
fetchDetails(ids).then(results => {console.log('所有结果:', results);
});

优势:通过限制并发数,减少网络拥塞和内存占用,提升整体稳定性。


四、分页加载与懒加载

针对大数据量场景,分批次加载数据。

let currentPage = 1;
const PAGE_SIZE = 10;async function loadMore() {const data = await zGet('/api/list', {page: currentPage,size: PAGE_SIZE});renderData(data);currentPage++;
}// 滚动触底加载
window.addEventListener('scroll', debounce(() => {const { scrollTop, clientHeight, scrollHeight } = document.documentElement;if (scrollTop + clientHeight >= scrollHeight - 100) {loadMore();}
}, 200));

五、缓存优化策略

  1. 浏览器缓存:通过Cache-Control头设置静态资源缓存。
   # Nginx配置示例location /static {expires 1y;add_header Cache-Control "public";}
  1. 本地存储:对低频变动的接口数据使用localStorage缓存。
   function getCachedData(key, ttl = 3600) {const item = localStorage.getItem(key);if (!item) return null;const { data, timestamp } = JSON.parse(item);if (Date.now() - timestamp > ttl * 1000) return null;return data;}function setCachedData(key, data) {localStorage.setItem(key, JSON.stringify({data,timestamp: Date.now()}));}

六、综合应用场景

  1. 高频搜索:防抖 + 请求合并。
  2. 批量详情请求:并发控制 + Promise缓存。
  3. 长列表渲染:分页加载 + 滚动懒加载。
  4. 静态资源加载:浏览器缓存 + CDN加速。

总结

通过请求合并减少冗余调用、节流防抖抑制高频操作、并发控制避免资源过载、缓存优化降低服务端压力,可系统性解决前端大规模并发问题。实际项目中需根据场景组合使用,并监控内存与网络性能。

相关文章:

【前端场景题】如何应对页面请求接口的大规模并发问题

如何应对页面请求接口的大规模并发问题,尤其是前端方面的解决方案,并且需要给出详细的代码解释。首先,我需要仔细阅读我搜索到的资料,找出相关的信息,然后综合这些信息来形成答案。 首先看,它提到前端优化策…...

Kafka 为什么会消息堆积?

Kafka 定期清理 Partition,但消息堆积(backlog) 依然可能发生,主要是因为 Kafka 的清理机制和消息消费进度是两回事。我们可以用一个 快递仓库 的类比来解释。 类比:Kafka 就像一个快递仓库 生产者(Produc…...

毕业项目推荐:基于yolov8/yolo11的苹果叶片病害检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…...

十四届蓝桥杯JAVA-b组-合并石子

点我写题 思路:区间dp和缝合dp板子题,先用个dp[i][j][k]表示考虑区间[i,j]合并成颜色k的最小代价,然后用min[i][j]存一下[i,j]区间合并的最小代价,即min(dp[i][j][0-2]),has[i][j]表示区间[i,j]是否能合并&#xff0c…...

【Maven】入门介绍 与 安装、配置

文章目录 一、Maven简介1. Maven介绍2. Maven软件工作原理模型图 二、Maven安装和配置1. Maven安装2. Maven环境配置3. Maven功能配置4. IDEA配置本地Maven软件 一、Maven简介 1. Maven介绍 https://maven.apache.org/what-is-maven.html Maven 是一款为 Java 项目管理构建、…...

物联网小范围高精度GPS使用

在园区内实现小范围高精度GPS(全球定位系统)定位,通常需要结合多种技术来弥补传统GPS在精度和覆盖范围上的不足。以下是实现小范围高精度GPS定位的解决方案,包括技术选择、系统设计和应用场景。 一、技术选择 在园区内实现高精度…...

突破Ajax跨域困境,解锁前端通信新姿势

一、引言 在当今的 Web 开发领域,前后端分离的架构模式已经成为主流,它极大地提升了开发效率和项目的可维护性。在这种开发模式下,前端通过 Ajax 技术与后端进行数据交互,然而,跨域问题却如影随形,成为了开…...

Docker 学习(一)

一、Docker 核心概念 Docker 是一个开源的容器化平台,允许开发者将应用及其所有依赖(代码、运行时、系统工具、库等)打包成一个轻量级、可移植的“容器”,实现 “一次构建,随处运行”。 1、容器(Container…...

【漫话机器学习系列】111.指数之和的对数(Log-Sum-Exp)

在计算机科学和机器学习中,经常会遇到计算指数和的对数的情况,例如: 然而,由于指数函数 的值增长极快,直接计算可能会导致数值上溢(overflow)或下溢(underflow)&#xf…...

算法004——盛最多水的容器

力扣——盛最多水的容器点击即可跳转 当我们选择1号线和8号线时,下标为 1 和 8 形成容器的容积的高度是由 较矮的决定的,即下标为 8 的位置; 而宽度则是 1到8 之间的距离,为 8-17,此时容器的容积为 7 * 7 49。 当我…...

前端内存泄漏的几种情况及方案

前端内存泄漏是常见但容易被忽视的问题,可能导致页面卡顿、崩溃或性能下降。以下是几种典型场景及解决方案: 1. 未清理的全局变量 场景: 意外创建全局变量(未使用 var/let/const)。主动挂载到 window 的大对象未释放…...

14. LangChain项目实战1——基于公司制度RAG回答机器人

教学视频: 12. 基于Gradio搭建基于公司制度RAG_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV11VXRYTErZ/ 环境配置: python版本:3.10.8 服务器:Ubuntu 依赖包requirements.txt文件内容: aiofiles23.2.1 …...

解锁 indexOf、substring 和 JSON.stringify:从小程序图片上传看字符串魔法 ✨

🌟 解锁 indexOf、substring 和 JSON.stringify:从小程序图片上传看字符串魔法 ✨ 在 JavaScript 中,字符串操作和数据序列化是开发中不可或缺的技能。indexOf、substring 和 JSON.stringify 是三个简单却强大的工具,分别用于定位…...

Git快速入门

文章目录 Git简介准备工作常用的Linux命令git配置 git工作原理git项目创建和克隆git基本操作命令git忽略文件配置ssh远程连接 IDEA集成Gitgit分支(多人开发)公司中用到的(很清楚) Git 简介 Git就是版本控制的工具 下面这个叫手动…...

老牌工具,16年依然抗打!

在电脑还没普及、操作系统为Windows XP/7的时代,多媒体文件的转换操作常常面临格式不兼容的问题。这时一款名为格式工厂的软件成为了众多用户的首选工具。格式工厂以其简洁易用的界面和强大的功能,轻松地进行各种文件格式的转换。成为很多修小伙伴的喜爱…...

JavaScript 进阶A(作用域、闭包、变量和函数提升、函数相关只是、数组解构、对象解构、构造函数

1.作用域 作用域主要分为:局部作用域和全局作用域。 局部作用域又分为:函数作用域和块作用域 函数作用域:在函数中定义的变量只能在函数内部使用,外部无法访问块作用域:被大括号{}包起来的代码块,在这个…...

《深度剖析:特征工程—机器学习的隐秘基石》

在机器学习的宏大版图中,特征工程宛如一座隐藏在幕后却又至关重要的基石。它默默发挥着作用,将原始数据雕琢成模型能够有效学习和理解的形态,深刻影响着机器学习模型的性能与表现。 特征工程:机器学习的关键前奏 特征工程是运用…...

Python Tornado 框架面试题及参考答案

目录 Tornado 框架的核心组件是什么?解释其作用。 Tornado 与其他 Python 框架(如 Django、Flask)的主要区别是什么? 为什么 Tornado 适合高并发场景?其设计哲学是什么? 解释 Tornado 的 Application 类和 RequestHandler 类的关系。 如何在 Tornado 中配置静态文件路…...

【音视频】VLC播放器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 一、vlc是什么? VLC Media Player(简称VLC)是一款免费、开源、跨平台的多媒体播放器,由非营利组织VideoLAN开发,最…...

视觉图像坐标转换

1. 透镜成像 相机的镜头系统将三维场景中的光线聚焦到一个平面(即传感器)。这个过程可以用小孔成像模型来近似描述,尽管实际相机使用复杂的透镜系统来减少畸变和提高成像质量。 小孔成像模型: 假设有一个理想的小孔,…...

算法刷题-2025年03月01日

import java.util.ArrayList; import java.util.Arrays; import java.util.List;public class test_02_28 {//长度最小的子数组 找出总和大于等于target的长度最小的子数组//target 7, nums [2,3,1,2,4,3] [1.2.2.3.3.4]public static int test1(int[] nums, int target){//存…...

算法1-2 分数线划定

题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的 150% 划定,即如果计划录取 m 名志愿者&#xf…...

设计模式之责任链模式

引言 在职场中,请假流程大家都再熟悉不过:申请 1 至 2 天的假期,只需直属主管审批即可;若要请假 3 至 5 天,就需部门负责人进行复核;而超过 5 天的假期申请,则必须由总经理最终定夺。要是遇到超…...

AndroidStudio下载旧版本方法

首先,打开Android Studio的官网:https://developer.android.com/studio。 然后,点击【Read release notes】。 然后需要将语言切换成英文,否则会刷不出来。 然后就可以看下各个历史版本了。 直接点链接好像也行:h…...

Excel基础(详细篇):总结易忽视的知识点,有用的细节操作

目录 基础篇Excel主要功能必会快捷键LotusExcel的文件类型工作表基本操作表项操作选中与缩放边框线 自动添加边框线格式刷设置斜线表头双/多斜线表头不变形的:双/多斜线表头插入多行、多列单元格/行列的移动冻结窗口 方便查看数据打印的常见问题Excel格式数字格式日期格式文本…...

FPGA开发,使用Deepseek V3还是R1(7):以“FPGA的整体设计框架”为例

以下都是Deepseek生成的答案 FPGA开发,使用Deepseek V3还是R1(1):应用场景 FPGA开发,使用Deepseek V3还是R1(2):V3和R1的区别 FPGA开发,使用Deepseek V3还是R1&#x…...

Android15 Camera HAL Android.bp中引用Android.mk编译的libB.so

背景描述 Android15 Camera HAL使用Android.bp脚本来构建系统。假设Camera HAL中引用了另外一个HAL实现的so (例如VPU HAL), 恰巧被引用的这个VPU HAL so是用Android.mk构建的,那Camera HAL Android.bp在直接引用这个Android.mk编…...

服务流程设计和服务或端口重定向及其websocket等应用示例

服务流程设计和服务或端口重定向及其websocket等应用示例 目录 服务或端口重定向的服务设计和websocket等应用示例 一、通用请求控制流程 1.1、入口 1.2、所有GET请求首先预检控制单元 1.3、http请求会分别自动307重定向 1.4、所有请求首先执行跨源控制单元 1.5、然后…...

(十 五)趣学设计模式 之 命令模式!

目录 一、 啥是命令模式?二、 为什么要用命令模式?三、 策略模式的实现方式四、 命令模式的优缺点五、 命令模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支…...

计算机毕设JAVA——某高校宿舍管理系统(基于SpringBoot+Vue前后端分离的项目)

文章目录 概要项目演示图片系统架构技术运行环境系统功能简介 概要 网络上许多计算机毕设项目开发前端界面设计复杂、不美观,而且功能结构十分单一,存在很多雷同的项目:不同的项目基本上就是套用固定模板,换个颜色、改个文字&…...

点云配准技术的演进与前沿探索:从传统算法到深度学习融合(3)

3、基于深度学习的点云配准方法 3.1 深度学习在点云配准中的应用原理 深度学习作为一种强大的机器学习技术,近年来在点云配准领域展现出了巨大的潜力和优势。其核心在于通过构建复杂的神经网络模型,能够自动从大量的点云数据中学习到高度抽象且有效的特…...

MyBatis TypeHandler 详解与实战:FastJson 实现字符串转 List

在 MyBatis 中&#xff0c;TypeHandler 是实现 Java 类型与数据库类型双向转换 的核心组件。无论是处理基础数据类型还是复杂的 JSON、枚举或自定义对象&#xff0c;它都能通过灵活的扩展机制满足开发需求。本文将通过一个 将数据库 JSON 字符串转换为 List<User> 的案例…...

实验环境搭建集锦(docker linux ros2+强化学习环境+linux上单片机串口调试)

为了记住一些实验环境配置开的文章&#xff0c;边配置边记&#xff0c;免得之后忘了。 Docker环境搭建 yay -S docker //下载docker docker info //查看docker配置 sudo systemctl start docker //系统配置打开docker sudo systemctl enable docker //系统配置后台开启d…...

第十三届蓝桥杯大赛软件赛决赛C/C++ 大学 B 组

A 【2022——暴力DP / 优雅背包】-CSDN博客 B 【钟表——类日期问题】-CSDN博客 C 【卡牌——二分】-CSDN博客 D 【最大数字——DFS】-CSDN博客 E 【出差——Dijkstra】-CSDN博客 F 【费用报销——01背包】-CSDN博客 G 【故障——条件概率】-CSDN博客 H 【机房—…...

商城系统单商户开源版源码

环境配置 1.软件安装 宝塔安装系统软件:Nginx、MySQL5.6、PHP( PHP用7.1-7.4版本)、phpMyAdmin(Web端MySQL管理工具)。 2.配置mysql 设置mysql&#xff0c;在已安装的软件里面找到 mysql点击进行设置 3.修改sql-mode 选择左侧配置修改&#xff0c;找到里面的sql-mode&…...

【SpringBoot+Vue】博客项目开发二:用户登录注册模块

后端用户模块开发 制定参数交互约束 当前&#xff0c;我们使用MybatisX工具快速生成的代码中&#xff0c;包含了一个实体类&#xff0c;这个类中包含我们数据表中的所有字段。 但因为有些字段&#xff0c;是不应该返回到前端的&#xff0c;比如用户密码&#xff0c;或者前端传…...

HTTP 协议的发展历程:从 HTTP/1.0 到 HTTP/2.0

HTTP 协议的发展历程&#xff1a;从 HTTP/1.0 到 HTTP/2.0 HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是 Web 的基础协议&#xff0c;用于客户端和服务器之间的通信。从 HTTP/1.0 到 HTTP/2.0&#xff0c;HTTP 协议经历了多次重大改…...

每日十个计算机专有名词 (7)

Metasploit 词源&#xff1a;Meta&#xff08;超越&#xff0c;超出&#xff09; exploit&#xff08;漏洞利用&#xff09; Metasploit 是一个安全测试框架&#xff0c;用来帮助安全专家&#xff08;也叫渗透测试人员&#xff09;发现和利用计算机系统中的漏洞。你可以把它想…...

SQL经典题型

查询不在表里的数据&#xff0c;一张学生表&#xff0c;一张学生的选课表&#xff0c;要求查出没有选课的学生&#xff1f; select students.student_name from students left join course_selection on students.student_idcourse_selection.student_id where course_selecti…...

基于Linux系统的物联网智能终端

背景 产品研发和项目研发有什么区别&#xff1f;一个令人发指的问题&#xff0c;刚开始工作时项目开发居多&#xff0c;认为项目开发和产品开发区别不大&#xff0c;待后来随着自身能力的提升&#xff0c;逐步感到要开发一个好产品还是比较难的&#xff0c;我认为项目开发的目的…...

文字描边实现内黄外绿效果

网页使用 <!DOCTYPE html> <html> <head> <style> .text-effect {color: #ffd700; /* 黄色文字 */-webkit-text-stroke: 2px #008000; /* 绿色描边&#xff08;兼容Webkit内核&#xff09; */text-stroke: 2px #008000; /* 标准语法 *…...

next实现原理

Next.js 是一个基于 React 的 服务器端渲染&#xff08;SSR&#xff09; 和 静态生成&#xff08;SSG&#xff09; 框架&#xff0c;它的实现原理涉及多个关键技术点&#xff0c;包括 服务端渲染&#xff08;SSR&#xff09;、静态生成&#xff08;SSG&#xff09;、客户端渲染…...

什么是 jQuery

一、jQuery 基础入门 &#xff08;一&#xff09;什么是 jQuery jQuery 本质上是一个快速、小巧且功能丰富的 JavaScript 库。它将 JavaScript 中常用的功能代码进行了封装&#xff0c;为开发者提供了一套简洁、高效的 API&#xff0c;涵盖了 HTML 文档遍历与操作、事件处理、…...

014 rocketmq角色介绍

文章目录 NameServer1 服务发现机制2 为什么要使⽤NameServer3 NameServer如何保证数据的最终⼀致&#xff1f;4 特点 BrokerProducerConsumerTopicQueueProducer GroupConsumer GroupMessageTagOffset 同一消费者组下&#xff0c;队列只能由一个消费者消费 广播模式&#xff1…...

如何防止Python网络爬虫爬取网站内容

要防止Python网络爬虫爬取网站内容&#xff0c;可以从以下几个方面入手&#xff1a; 遵守Robots.txt文件&#xff1a;首先&#xff0c;网站管理员可以通过robots.txt文件明确告知爬虫哪些页面可以抓取&#xff0c;哪些不可以。爬虫在抓取之前应先检查该文件&#xff0c;尊重网站…...

项目准备(flask+pyhon+MachineLearning)- 3

目录 1.商品信息 2. 商品销售预测 2.1 机器学习 2.2 预测功能 3. 模型评估 1.商品信息 app.route(/products) def products():"""商品分析页面"""data load_data()# 计算当前期间和上期间current_period data[data[成交时间] > data[成…...

选开源CMS建站系统时,插件越多越好吗?

在选择开源CMS建站系统时&#xff0c;插件数量并不是唯一的衡量标准&#xff0c;更不能简单地说“插件越多就越好”&#xff0c;还是需要综合评估来考虑选择结果&#xff0c;以下是有关选择开源CMS系统时对插件数量的考量。 插件数量的优势插件数量可能带来的问题功能丰富性&a…...

OSPF BIT 类型说明

注&#xff1a;本文为 “OSPF BIT 类型 | LSA 类型 ” 相关文章合辑。 机翻&#xff0c;未校。 15 OSPF BIT Types Explained 15 种 OSPF BIT 类型说明 Rashmi Bhardwaj Distribution of routing information within a single autonomous system in larger networks is per…...

C语言(3)—循环、数组、函数的详解

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、函数二、循环与数组 1.循环2.数组 总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、函数 在C语言中&#xff0c;函数…...

大唐杯——阶段二01

03 5G寻呼 UE&#xff08;User Equipment&#xff09; UE是用户设备&#xff08;User Equipment&#xff09;的缩写&#xff0c;指的是移动通信网络中的终端设备&#xff0c;例如手机、平板电脑、物联网传感器等。 AMF&#xff08;Access and Mobility Management Function&a…...