获得徽章 2
- #青训营笔记创作活动#
1月10日 打卡day8
今天学习了kafka,第一次了解,学的不是很透彻。kafka由producer,broker,consumer三部分组成。对于kafka,越多的副本数就越能保证数据可靠性,一般副本数设置为3就可以满足大多数场景。文章很长,写的非常详细,非常适合学习。
展开评论点赞 - #青训营笔记创作活动#
1月9日 打卡day7
今日学习了
1.百度网盘的登录扫描二维码为什么秒挑战,原来原理很简单,就是采用长训轮机制,将HTTP请求超时设置很大,比如设置30s,在这30s内只要服务器收到扫码请求就立刻返回客户端网页,如果超时就马上发起下一次请求。
2.而对于像网页游戏那种需要服务端发送大量数据的场景,就需要用websocket协议,这个协议是在应用层,那么建立websocket连接,需要http请求里带一些特殊的header头(升级协议➕随机的base64码)给服务端,服务端再用算法生成字符串,放在sec-websocket-accept头,同时带101状态码(协议切换状态)返回给浏览器,之后浏览器也用算法将base64转成字符串,跟服务端发送过来的相比较是否一致。
3.对于payload length:websocket最开始的7bit如果是0-125,那么只读最开始的7个bit就可以了,表示payload全部长度了。如果是126,那就还需要再读16bit。如果是127就需要接着读64bit。之后就可以根据长度读取payload data中的数据了。
4.如何解决沾包问题:tcp协议本身是全双工,纯裸tcp去传输就会发生沾包,因此应用层协议(上层协议)一般都会用消息头➕消息体的格式包装数据。http协议和大部分rpc协议➕websocket协议都是这样设计的。
5.websocket协议适用于需要服务器和客户端频繁交互的场景,如飞书、网页游戏等。
总结:文章很友好,对于我这种小白能吃的很明白了。![[强]](//lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_79.6185c09.png)
展开评论点赞 - #青训营笔记创作活动#
1月8日 打卡day6
今日学习了电脑插上网线后如何获得IP,通过阅读此文章,我了解到通过DHCP协议申请一个IP,同时还会获得子网掩码和路由器地址等信息。对于DHCP有四个阶段discover,offer,request,ack。如果断网之后再重连,只需要三四阶段就可以。另外DHCP是应用层协议,使用的是UDP因为是广播。而且DHCP分配的IP是有可能重复的,DHCP得到IP之后会发3次ARP,确定没有冲突之后才会使用此IP。文章通俗易懂,对我这种小白非常友好,收获不小
展开评论点赞 - #青训营笔记创作活动#
1月7日 day5
今日学习了MySQL索引内容,熟悉了一下最左匹配原则,就是指在联合索引中,如果你的 SQL 语句中用到了联合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个联合索引去进行匹配。阅读文章确实涨了很多知识,了解了Select * 在一些情况下是会走索引的,如果不走,是因为 where 查询范围过大,导致MySQL 最优选择全表扫描。
展开评论点赞 - #青训营笔记创作活动#
1月6日 day4
今日学习了这篇文章,跟着作者我也回顾了一下我学go的经历。我是Java转go,说起来有Java根基确实学起来不算很难。之后就是跟着做了做goweb项目,连接MySQL数据库,mvc跟Javaweb流程很相似,区别只是语言罢了。后来接触到了go-zero,不得不说,微服务框架用起来真的很香。go-zero集成了各种工程实践的包含web和rpc框架,有强大的工具支持,可以尽可能少的代码编写,而且接口极简,完全兼容net/http,支持中间件,方便扩展等等。
我很赞同“分布式微服务架构是主流趋势,越来越多的企业采用分布式微服务架构进行业务转型。”这句话,但是对于文章里介绍的ddd我是第一次了解。对于思维的转换真的很重要。展开评论点赞 - #青训营笔记创作活动#
1月5日 day3
今日学习了索引数据的计算,但是对于MySQL的基础知识还是不太清晰,通过文章的快速回顾,熟悉了一下InnoDB节点的储存内容。在看计算的时候还是有一点吃力的,最后得出总结:在做项目考虑分表的时候要结合实际情况,不能盲目的就认为两千万数据就是临界点。展开赞过评论2 - #青训营笔记创作活动#
1月4日 打卡day2
今日学习了这篇文章,好多插件都用上了,非常方便。看这篇之前我只用过Lombok,没想到还有这么多宝藏插件,最喜欢Maven Helper它可以快速查找项目中的依赖冲突,并解决,超级方便。展开评论点赞 - #青训营笔记创作活动#
1月3日 打卡day1
今日学习限流的几种方式
①计数器:原理就相当于坐火车,车厢满了就不能上车了。这个方式虽然实现简单,但对边界没有很好的处理,限流控制不精准。
②滑动窗口:原理就是划分格子(将固定时间段分片),随时间进行移动。也不能彻底解决边界问题。
③漏桶:原理就是固定容量的水桶,根据固定速率滴出水滴。可以控制消费频率,但不能多消费。
④令牌桶:原理是在桶里按照固定的时间加放令牌,多余的会被丢弃,有请求时就移除一个。这个方式强烈推荐,可以解决漏桶问题还能避免过度消费。
⑤Redis➕Lua分布式限流:以集群为维度,借助Redis的计数器,lua的原子性,支持分布式限流,可以保护下游依赖的服务资源。展开评论点赞
![[强]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_79.6185c09.png)