获得徽章 1
#青训营笔记创作活动#
2023年1月4日 day15
其实我觉得网络原理从下往上看看,就是 遇到问题 解决问题, 从底层开始一步一步加中间层,实现隔离,但是从上往下看,看的是这个应用需要什么,我们可以利用下层提供什么服务,然后在看下层为什么能提供这样的服务,一步一步庖丁解牛,直至底层. 个人感觉这篇写的十分有意思,发现他还有中下,明天看看.
展开
评论
#青训营笔记创作活动#
2023年1月3日 day14
Https,在传输过程中,会对消息体和url进行加密,然后我们可以通过获取的第三个随机数来确定我们的对话密钥已达到解密消息体的数据。
评论
#青训营笔记创作活动#
2023年1月1日 day13
1.总结工具类 2. 封装复杂逻辑 3. 拥有性能优化的嗅觉 4. 打印好日志 5. 兼容老的接口
评论
#青训营笔记创作活动#
2022年12月31日 day12
这是我自己写的一篇文章,结合书籍,将自己的理解都放在注释中了,mutex的woken标志位刚开始看十分难理解!!!
评论
#青训营笔记创作活动#
2022年12月30日 day11
今天学习了chan的源码,知道了为什么 nil <- 或者 <- nil 会阻塞,也知道了为什么 向已经close的chan发送数据会panic,读已经关闭的返回nil.
评论
#青训营笔记创作活动#

2022年12月29日 day10
tcp 为了实现可靠性,需要做重传,乱序重排,流量控制,拥塞控制等,而udp不需要,所以一般情况下udp是比tcp快,但是如果upd+重传机制,在传输的包大的情况下,丢了一个包,这种情况下就是tcp比较快了,因为tcp 只需要传丢的那一个包,udp需要传全部.
展开
评论
#青训营笔记创作活动#
2022年12月27日 day9
今天学习了undo日志,从中了解到undo日志格式以及如何存储undo日志,为了实现mvcc,又划分了两种不同的格式,插入和删除等明天阅读完mvcc之后一起写个总结!
评论
#青训营笔记创作活动#
2022年12月27日 day8
今天阅读了 undo log日志章节, 了解了 lsn 的相关含义,以前一直困扰我当 脏页更新失败,如何恢复的问题现在也解开了!
首先我们崩溃恢复需要 注意两个值,一个 是上一个检查点的lsn(checkpoint_lsn) 一个其在log file的位置也就是 offset,这两个在我们的 log file 第一个块中有,然后取出其他两个 checkpoing块的 lsn 的较大者,我们就可以从他开始更新.
1. hash(spaceid+page num) 放在一个槽,如果冲突拉链法.
2. 跳过更新过的(如果脏页被刷到磁盘了 那么file header的lsn就会是flush list中的newest_lsn,比较这个 newest_lsn 和 当前redo log 的lsn)
这样我们就可以恢复了
展开
评论
#青训营笔记创作活动#
2022年12月26日 day7
1. 使用笨方法,记笔记,这点还是感触较深,记下来以后很好的反馈以后的自己.
2. 遇到bug 抛弃 百度,走向 谷歌
3. 翻译模棱两可(ambiguity),多个线上词典找不同.
4.解决英文文档中的复杂句子 拆分 + 逐一破解.
展开
评论
#青训营笔记创作活动#
2022年12月25日 day 7
1. websocket 建立连接是基于 http 协议的
a. tcp 3 次握手
b. http get 请求

Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Key: T2a6wZlAwhgQNqruZ2YUyg==\r\n
c. 服务端响应
HTTP/1.1 101 Switching Protocols\r\n
Sec-WebSocket-Accept: iBJKv/ALIW2DobfoA4dmr3JHBCY=\r\n
客户端拿到这个会和 (将自己发出的key用公开算法加密得到的值) 相比较
Upgrade: websocket\r\n
Connection: Upgrade\r\n
d. 之后会进行websocket 协议的通信
2. websocket 协议字段
opcode: 1 text 2 bin 8 close
payload 长度:
a. 首先会读第一个 7bit, 如果发现 <126 那么不会读后面
b. 126(0x7E) 读16bit
c. = 127 读64bit
展开
评论
#青训营笔记创作活动#
2022年12月24日 day6
DCHP协议再探,其实已经学习过计算机网络这门课了,等于再次复习,总结下。
1. 解放双手,电脑插上网线,联网后会通过DHCP协议动态申请一个IP,同时获得子网掩码,路由器地址等信息。
2. 4个过程,收到 ACK 成功,NACK 失败。成功后 会发送 3 个 无偿ARP(1.告诉别人 2. 检查冲突)
3. 使用 UDP
4. 如果在 DCHP Discovery 的时候就标明头部 Broadcast flag:Unicast,那么 服务器就会单播回复。
5. 再次联网 会直接 DHCP Request
注意: 分配的IP一定是不重复的,但是可能与手动设置的IP重复。
展开
评论
#青训营笔记创作活动#
2022年12月23日 day5
1. 联合索引的最左匹配原则 (a) (a,b) (a,b,c) 但是使用了模糊(like[只要%在最前面就不符合],>、<、between)就会停止匹配。
但是文中提到的 8.0 后的 跳跃查询,我觉得解释的不是很清楚,我看了看博客。联合索引的第一个和最后一个字段是可以省略的。比如有一个联合索引 (f1,f2) -> 查询 where f2 > 20其实就是遍历所有f1的值,将f1中满足条件的f2拿出来然后合并返回。f1 = (1,2,3) -> where f1 = 1 and f2 > 20 ,where f1 = 2 and f2 > 20 ,where f1 = 3 and f2 > 20 就是这样。
2. select * 增加无用开销,可能包含无用数据,来造成回表查询(索引覆盖)
3. where 中给索引列使用函数
4. 计算操作 索引列计算
5.or 如果条件出现非索引列,就会索引失效,加上后,会优化为联合索引。
6. not in 和 in 的范围太大,导致过滤数据很少,选择全表查询。
展开
评论
#青训营笔记创作活动#
2022年12月22日 day4
感觉 DDD 这个对于我们来说,就像文章中提到的如果没有经历一个完整的项目,是无法体会到的。但是微服务的特点这点写过一些小项目,发现确实如此,只不过自己没有这么好的总结能力,在此记录一下。
微服务的特点:1.单一职责 2.团队独立 3. 技术独立 4.数据库分离 5.独立部署
展开
评论
#青训营笔记创作活动#
12.21 day3
这篇文章有点硬核,对于页的结构一共有四种,作者从0到1,一步一步推导出储存容量的大小,今天读了好久,还是没有读的太懂,明天会继续研读
评论
#青训营笔记创作活动#
2022年12月20日 day2
文中 GrepConsole 感觉十分有用,感觉对于Debug,可以节省不少时间,其实个人推荐一卷插件也就是 IdeaVIm, 感觉十分好用。
评论
#青训营笔记创作活动#
12 月 19 日 打卡day1
今日学习
1.计数器
优点:
固定时间段计数,实现简单,适用不太精准的场景
缺点:
假设过期时间是1s,我们开始时按一次,然后快结束的时候按9次,这样限流的效果就不是很好,系统可能会承受恶意用户的大量请求,甚至击穿系统.
2.滑动窗口
我们利用滑动窗口来存取 点赞的时间,当我们发现窗口满了,如果发现最开始的时间距今<时间间隔的话,我们就将其排除,往队尾添加当前时间。
优点:
时间分块固定,一个间隔时间内一个窗口,稍微精准。
缺点:
其实计数器就是滑动窗口啊,只不过只有一个格子而已,所以想让限流做的更精确只需要划分更多的格子就可以了,为了更精确我们也不知道到底该设置多少个格子,格子的数量影响着滑动窗口算法的精度,依然有时间片的概念,无法根本解决临界点问题。
也就是我们还是能一瞬间发出那么多请求,比如每隔1s发出十次.
3.漏桶
固定容量的桶,任意速率流入桶,按照固定速率流出水滴,如果超过桶的容量(溢出)则拒绝新的请求。
优点:
我们处理请求的速率是十分均匀的(流出水滴的速率)
缺点:
如果流入桶的速率过大,那么我们桶中的水会溢出,合法请求可能被抛弃。
所以最大的速率就是出水的速率,不能出现突发流量。
4.令牌桶
改进漏桶,我们按照固定速率添加令牌(超过容量,丢弃),
优点:
可以解决“漏桶”不能灵活消费的问题,又能避免过渡消费,强烈推荐;
实现复杂
Redis + Lua 分布式限流:
可以实现:
滑动窗口(list),计数器。
优点:
支持分布式限流。
缺点:
也就是计数器和滑动窗口的缺点。
展开
评论
下一页
个人成就
文章被阅读 200
掘力值 21
收藏集
0
关注标签
3
加入于