
获得徽章 14
- #青训营笔记创作活动#
2/10/2023 day10
本文作者开门见山,给出了作者在三个主流node包管理器(npm, yarn, pnpm)中更推荐pnpm的原因——修复了潜在bug,优化了性能,扩展了适用场景。评论点赞 - #青训营笔记创作活动#
2/9/2023 day9
此文作者试图直接通过 wireshark 查找 http host 的方式过滤发往 baidu.com 的请求进行抓包作引,引出 HTTPS 连接请求体由于受到加密而无法如此检索的问题。作为解决,作者通过检索 TLS 握手的 Client Hello 阶段的 server_name 拓展成功检索到 baidu 数据包,随后通过追踪 TCP 流的方式进一步追踪。展开评论点赞 - #青训营笔记创作活动#
1/31/2023 day8
本文通过动图的方式,以“UDP一定比TCP快吗”为问题,向读者简要的讲述了使用 socket 进行数据传输的大致方法以及 TCP 的多个异常处理和数据包重传/避免重传机制;最后,作者回答开篇提问,认为 UDP 在大部分情况下确实都比 TCP 快,但除了应用层上对未分段数据包进行整体重传的情况下会比 TCP 更慢展开评论点赞 - #青训营笔记创作活动#
1/20/2023 day7
作者用自己的经历给予了其他开发者如何正确的查阅文档,在一个月内跨越英文障碍:
- 当遇到百度查不到的问题时(不如说根本就不要用百度),不如试试 Google, Bing, StackOverFlow, MSDN 等网站
- 中文翻译模棱两可时,查阅机器翻译或在线词典来获得精确解释展开评论点赞 - #第五届青训营阅读打卡#
1/19/2023 day6
Kafka 是一个消息持久化系统。其具备系统解耦,冗余存储,流量削峰,缓冲,异步通信,扩展性,可恢复性等功能。Kafka 架构由 Producer,Broker,Consumer,以及一个 ZooKeeper 集群组成。Producer 将消息发送到 Broker,Broker 负责将收到的消息存储到磁盘中,而 Consumer 负责从 Broker 订阅并消费消息。展开评论点赞 - #青训营笔记创作活动#
1/17/2023 day5
该文章以真实需求起步,配合现实做法,从HTTP轮询引出长轮询,最后引出了 websocket。
websocket是基于TCP的全双工协议,可通过在HTTP请求中包含请求头 Upgrade: websocket 将 HTTP 连接提升至 websocket 连接,在经过 TCP 握手建立连接后,通过 websocket 的数据格式传输数据展开评论点赞 - #青训营笔记创作活动#
1/16/2023 day4
本文通过生动活泼的语言和例子向读者介绍了DHCP和DHCP的工作原理,并回答了几个常见的问题。
DHCP通过UDP协议发送,由DHCP Discover,DHCP Offer,DHCP Request,DHCP ACK四个阶段组成。由客户机率先发起广播请求,并由DHCP服务器回应,然后再进行一轮确认即可完成IP,子网掩码,路由器地址的确认。
DHCP Offer阶段可由客户机在DHCP Discover阶段指定进行单播而不是广播以节约性能。
下次联网时,客户机可只进行DHCP Request和DHCP ACK请求。
DHCP分配的IP有可能重复,这可能发生在有多个DHCP服务器或自己手动配置IP地址的情况。
DHCP ACK后,客户机会发送三个无偿ARP广播以通知本地网段的其他客户机缓存其IP和MAC地址并查找是否有冲突的IP。展开评论点赞 - #青训营笔记创作活动#
1/15/2023 day3
作者以过来人的身份向学习 Go 的新手解答了一些常见的疑惑。
如果试图从客户端转向服务端开发,那么应当首先改变自己的编程思维;
可以尝试多看官方文档来学习并加深自己对一门编程语言的印象;
除了语言基础,自然还要学习SQL,Nginx等常见技术栈才能开发Web项目;
对于进阶学习,可以学习微服务和DDD(领域驱动设计)的思想。展开评论点赞 - #青训营笔记创作活动#
1/14/2023 day2
该文章介绍了几个非常实用的 IntellIJ IDEA 插件,可以极大程度上加快开发效率或是提升开发者使用体验。这里选取几个自己正在用的插件:
Key Promoter X:一个可以帮助你学习 IDEA 键盘快捷键操作的插件
Lombok:Java 注解库 Lombok 的语法解析插件,已内置在 IDEA 中
GsonFormatPlus:JSON 生成 Entity 插件,一个缺点是不支持带注释的 JSON,需要手动去除注释才能正常解析
Translation: IJ 上最好的翻译插件,支持一键翻译文档,划词翻译,手动翻译,同时支持多种翻译引擎(Google 翻译最方便,因为不需要申请 apikey)
Statistic:代码量统计插件,可以帮你统计不同语言的行数和字符数等内容,比较方便
Vue.js: Vue 的语法解析插件,不过我更建议直接使用 WebStorm 而不是在 IDEA 上进行 Vue 工作展开评论点赞 - #青训营笔记创作活动#
1/13/2023 day1
「限流」是应对高并发场景的一个常见方法,该文章介绍限流的基本概念,并给出了几种常见的限流方式:
1. 计数器限流,请求到达计数临界点则进行限流
2. 滑动窗口限流,通过滑动窗口根据时间动态计算计数并在到达阈值时限流
3. 漏桶限流,有点像小学题,泳池里一边加水一边放水,当超出阈值时限流
4. 令牌桶限流: 和漏桶有点像,但是其可以「允许一定程度的突发流量」
5. 通过Redis+Lua实现的限流
除此之外,还可以直接对容器进行限流。
最后,该文章给出了以上五种限流方式的对比,在不同的需求下,我们可以选择不同的限流方式。展开评论点赞