知识点题目集合

题目

1.路由的hash模式和history模式有什么区别?

是前端路由匹配的两种模式,不涉及服务器,是利用浏览器的hash和history来实现,两者都是利用浏览器的自身特性,通过客户端来进行路由匹配,不会触发完整的http请求。hash是url的#添加hash来作为标识;history的url比较完整,符合规范。

Hash模式:hash不在http请求中。通过onhashchange来监听hash变化。只有当hash后面的值不同时,才会触发onhashchange事件。

History模式:通过HTML5的history对象,使用pushState、replaceState、popState(前进后退时触发)来监听url的变化,通过修改历史记录来修改url。在二级目录刷新时,在客户端找不到对应的路由,会进行http请求,报错404,所以需要后端配合,配置所有的入口文件为index.html。pushState可添加任意类型的数据,也可与当前url一致,还可设置title。

2.QPS:

每秒数万次的高并发场景

QPS=并发量/平均响应时间

实际上,平均响应时间会变高。

出现高并发的情况:

  1. 某个业务请求接口出现问题,响应时间及慢,将Web服务器的可用连接数占满,导致无连接进程可用,影响其他业务。

  2. 用户行为,系统不可用,用户点击越频繁。在负载均衡中,一台服务器挂了,分流到其他服务器,其他服务器也挂。

  3. 大量CC攻击或者DDOS攻击。

处理高并发状况:

  1. 重启服务

  2. 过载保护,如果检测到系统超负载状态,拒绝请求。将过载保护设置在CGI入口层。

高并发解决方案:

  1. 应用层面:读写分离、缓存、队列、集群、令牌、系统拆分、隔离、系统升级。

  2. 时间换空间:降低单次请求时间。

  3. 空间换时间:拉长整体处理业务时间。

优化提升QPS:

  1. 调整服务器的最大连接数。

  2. 内存操作级别的存储Redis。

  3. 增加服务器配置,如更好的CPU,加大网络带宽。

  4. 使用cdn,高防cdn和高防IP。

  5. 负载均衡。

相关推荐
码界奇点1 分钟前
基于Spring Boot和Vue.js的房屋出租管理系统设计与实现
vue.js·spring boot·后端·车载系统·毕业设计·源代码管理
Irene19916 分钟前
JavaScript 字符串和数组方法总结(默写版:同9则6 Str21 Arr27)
javascript·字符串·数组·方法总结
可触的未来,发芽的智生8 分钟前
新奇特:象棋与麻将,解析生成大模型的两种哲学
javascript·人工智能·python·程序人生·自然语言处理
程序员修心20 分钟前
CSS 盒子模型与布局核心知识点总结
开发语言·前端·javascript
Cshaosun22 分钟前
阿里云宝塔面板部署vue+nodejs项目并实现https访问操作流程
vue.js·阿里云·https·node.js·宝塔·文件下载
IT古董27 分钟前
企业级官网全栈(React·Next.js·Tailwind·Axios·Headless UI·RHF·i18n)实战教程-第五篇:登录态与权限控制
javascript·react.js·ui
jingling55535 分钟前
uni-app 安卓端完美接入卫星地图:解决图层缺失与层级过高难题
android·前端·javascript·uni-app
哟哟耶耶41 分钟前
component-编辑数据页面(操作按钮-编辑,保存,取消) Object.assign浅拷贝复制
前端·javascript·vue.js
佳瑞Jarrett43 分钟前
我用 Vue + SpringBoot + Redis 写了个「文件快取柜」
vue.js·spring boot·redis
bjzhang7544 分钟前
使用 HTML + JavaScript 实现可编辑表格
前端·javascript·html