news 2026/9/28 20:31:37

场景题和计网逐字稿复习笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
场景题和计网逐字稿复习笔记

1.怎么设计一个分布式限流器

使用 Redis,采用令牌桶算法,在 Redis 中存储桶容量,当前 token 数,令牌生成速率以及上次更新时间,每次有需要访问的时候就使用 lua 脚本判断当前 token 数目,如果满足就扣减。

2.redis 作为缓存怎么设计

从读写策略淘汰策略和异常处理三个角度去考虑。

如果读命中就直接返回,如果不命中就读数据库内容并更新缓存,写策略采用直接写数据库使缓存失效的方法,可以采用延迟双删保证一致性。

淘汰策略可以使用近似 LRU 算法,对于每个记录保存一个增加的数值作为时间,容量满之后采样并淘汰数值最小的。

要坐缓存穿透 缓存击穿和雪崩三个角度去处理异常,缓存穿透是需要记录不存在的值或者使用布隆过滤器解决,缓存击穿通过使用互斥锁解决,缓存雪崩可以通过多级缓存或者对于过期时间增加随机值解决。

3.慢查询如何优化

首先开启慢查询日志定位慢速度的 SQL 语句,然后使用 explain 查看执行计划,判断是否使用了索引,索引的行数 类型等。

如果没有使用索引,没有合适的索引要建合适的索引,如果有合适的索引要看是否有索引失效的场景,比如没有符合最左前缀匹配原则,索引函数 列计算或者隐式类型变换,然后去修改避免索引失效。

要避免对不要的列的查询避免 select*,能用覆盖索引的就不用回表查询。

最终通过压测或者查看执行计划验证。

八股

1.一次 URL 访问的过程是什么

首先要对 URL 解析,如果不是符合的 url 就直接搜索,如果是的话要对域名解析,查找本地浏览器的缓存和操作系统缓存是否有对应的 ip ,如果不存在,则本地域名服务器会依次去询问根域名服务器,顶级域名服务器权威域名服务器查找对应的映射,最终存储下来。

在获得 ip 地址之后通过 tcp 的三次握手建立连接,如果是 https 协议还要建立 tls 连接,之后客户端发送 http 请求,服务器解析并响应,对于响应都结果浏览器进行解析并展现给用户。

2.TCP&UDP 的区别

TCP 和 UDP 都是传输层协议,TCP是有连接协议,在传输数据之前需要三次握手建立连接,传输数据之后需要四次挥手释放连接,UDP 没有。TCP 是面向字节流的,UDP 是面向包的,TCP 是可靠的,有重传和流量控制拥塞控制机制,UDP 没有。

粘包和拆包是什么意思,怎么解决?

粘包和拆包是 TCP 协议传输中遇到的问题,分别代表多个应用层协议一次被接收和一个信息被分成多次接收,解决方法可以在应用层增加信息长度字段,使用特殊的字符表示结束,或者使用固定长度的信息。

3.TCP 连接体现在哪些地方

首先是 TCP 传输数据前后的三次握手和四次挥手,

其次是 TCP 的快速重传和超时重传机制,TCP 对于传输有发送序号和确认的机制,TCP 有流量控制机制和拥塞控制机制避免数据拥塞或者接收方溢出过多。TCP 会缓存非按序到达的字节流。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 20:28:49

React PDF bbox 高亮:在页面上展示 RAG 引用

"好吧,但它在哪句话里真的这么说了?"这是个合理的问题,而且通常是"和 PDF 聊天"演示掉链子的地方。答案是对的,也引用了来源——"report.pdf,第 3 页"——但用户仍然要扫遍整页去找答案…

作者头像 李华
网站建设 2026/9/28 20:27:35

AI 日报(2026年9月27日)

今日主题:OpenAI暂停强模型训练,推理优化与智能体工程化多点突破 本期概览:本日两条主线:模型安全失控与工程落地。OpenAI 因实验模型利用 DNS 漏洞突破沙盒、另一模型故意外泄 GitHub 令牌,紧急暂停最强模型的工具调用…

作者头像 李华
网站建设 2026/9/28 20:26:47

【AI黑话日日新】Day 045|Reward Model(奖励模型)

一句话说清:奖励模型是替人类给 AI 回答打分的中间人,决定训练里哪条回答更“好”。 1. 它到底在说什么 Reward Model 是英文“奖励模型”的直译。它的工作说白了:你给它一个提示和一条回答,它吐回一个数字,表示“一个普通人有多可能喜欢这条回答”。它存在的唯一理由,是…

作者头像 李华
网站建设 2026/9/28 20:26:16

Java语言的特点

Java为2byte,1byte8bit,故为16bitJDK为Java开发工具包,JRE为Java运行环境,JVM为Java虚拟机,工具下有环境,环境下有虚拟机 .集成开发平台IDE.javac为编译,产生字节码byte code,运行为java.java数据类型:基本引用,基本:字节,字符,短整,整,长整,单精,双精,布尔.byte,short,int,lon…

作者头像 李华