获得徽章 1
#青训营笔记创作活动#
1月12日 打卡day17
今天学习了
一、一条SQl是如何诞生的?
二、一 条SQL执行前会经历的过程
三、一条SQL语句在数据库中是匙如何执行
四、一条SQL执行完成后是如何返回的?
展开
评论
#青训营笔记创作活动#
1月11日 打卡day16
今日学习了502问题的排查
HTTP状态码用来表示响应结果的状态,其中200是正常响应,4xx是客户端错误,5xx是服务端错误。
客户端和服务端之间加入nginx,可以起到反向代理和负载均衡的作用,客户端只管向nginx请求数据,并不关心这个请求具体由哪个服务器来处理。
后端服务端应用如果发生崩溃,nginx在访问服务端时会收到服务端返回的RST报文,然后给客户端返回502报错。502并不是服务端应用发出的,而是nginx发出的。因此发生502时,后端服务端很可能没有没有相关的502日志,需要在nginx侧才能看到这条502日志。
如果发现502,优先通过监控排查服务端应用是否发生过崩溃重启,如果是的话,再看下是否留下过崩溃堆栈日志,如果没有日志,看下是否可能是oom或者是其他原因导致进程主动退出。如果进程也没崩溃过,去排查下nginx的日志,看下是否将请求打到了某个不知名IP端口上。
展开
评论
#青训营笔记创作活动#
1月8日 打卡day15
今天学习了优秀后端都应该具备的开发好习惯,
1.注释尽可能全面,写有意义的方法注释
2.项目拆分合理的目录结构
3. 不在循环里远程调用、或者数据库操作,优先考虑批量进行。
4.封装方法形参
5.封装通用模板
6.封装复杂的逻辑判断条件
7.保持优化性能的嗅觉
8.可变参数的配置化处理
9.会总结并使用工具类。
10.控制方法函数复杂度
11.在finally块中对资源进行释放
12.把日志打印好
13.考虑异常,处理好异常
展开
评论
#青训营笔记创作活动#
1月7日 打卡day14
今天学习了网络原理,从单机到互联:本质是通信问题,数据传输方式:电路交换、报文交换、分组交换
转发&标识思想,集线器(Hub),交换机,报文交换.,分组交换,路由器,IP地址。
展开
评论
#青训营笔记创作活动#
1月6日 打卡day13
今天学习了MySQL整体结构以及网络连接层,数据库连接池(Connection PooD,四系统服务层
SQL接口,解析器、优化器、缓存&缓冲.、存储引擎层文件系统层、日志模块、数据模块
展开
评论
#青训营笔记创作活动#
1月3日 打卡day12
今天学习了文章开头通过抓包baidu的数据包,展示了用wireshark抓包的简单操作流程。
HTTPS会对HTTP的URL和Request Body都进行加密,因此直接在filter栏进行过滤http.host == "baidu.com"会一无所获。
HTTPS握手的过程中会先通过非对称机密去交换各种信息,其中就包括3个随机数,再通过这三个随机数去生成对称机密的会话秘钥,后续使用这个会话秘钥去进行对称加密通信。如果能获得这三个随机数就能解密HTTPS的加密数据包。
三个随机数,分别是客户端随机数(client random),服务端随机数(server random)以及pre_master_key。前两个,是明文,第三个是被服务器公钥加密过的,在客户端侧需要通过SSLKEYLOGFILE去导出。
通过设置SSLKEYLOGFILE环境变量,再让curl或chrome会请求HTTPS域名,会让它们在调用TLS库的同时导出对应的sslkey文件。这个文件里包含了三列,其中最重要的是第二列的client random信息以及第三列的pre_master_key。第二列client random用于定位,第三列pre_master_key用于解密。
展开
评论
#青训营笔记创作活动#
12月31日 打卡day11
今天学习了写出漂亮代码的些许技巧和具体场景的实际操作,要及时对自我进行调整。
注意规范和使用场景的正确性。
评论
#青训营笔记创作活动#
12月30日 打卡day10
今天学习到TCP为了实现可靠性,引入了重传机制、流量控制、滑动窗口、拥塞控制、分段以及乱序重排机制。而UDP则没有实现,因此一般来说TCP比UDP快。CP是面向连接的协议,而UDP是无连接的协议。这里的"连接"其实是,操作系统内核在两端代码里维护的一套复杂状态机。大部分项目,会在基于UDP的基础上,模仿TCP,实现不同程度的可靠性机制。比如王者农药用的KCP其实就在基于UDP在应用层里实现了一套重传机制。对于UDP+重传的场景,如果要传超大数据包,并且没有实现分段机制的话,那数据就会在IP层分片,一旦丢包,那就需要重传整个超大数据包。而TCP则不需要考虑这个,内部会自动分段,丢包重传分段就行了。这种场景下,其实TCP更快。
展开
评论
#青训营笔记创作活动#
12月29日 打卡day9
学习到下面的几种问题的用对手段
1.遇到的 Bug 百度没有结果怎么办
2.中文翻译文献模棱两可怎么办
3.寻找外文文献的发现过程是什么样的
4.如何解决英文文档中的复杂句子
5.如何结合文档学习语法
6.结合实例带你操作“笨”方法找到适合自己的路
展开
评论
#青训营笔记创作活动#
12月21日 打卡day8
今日学习了Kafka 的一些基本知识,包含 Topic、Partition、消费者、生产者、副本等基本概念,同时也认识了 Kafka 的版本变迁以及应用实战所必备的知识点,最后文章以“消息可靠性分析”这个主体结尾,加深我对 Kafka 的理解。
展开
评论
#青训营笔记创作活动#
12月17日 打卡day7
CP协议本身是全双工的,但我们最常用的HTTP1.1,虽然是基于TCP的协议,但它是半双工的,对于大部分需要服务器主动推送数据到客户端的场景,都不太友好,因此我们需要使用支持全双工的websocket协议。在HTTP1.1里。只要客户端不问,服务端就不答。基于这样的特点,对于登录页面这样的简单场景,可以使用定时轮询或者长轮询的方式实现服务器推送(comet)的效果。对于客户端和服务端之间需要频繁交互的复杂场景,比如网页游戏,都可以考虑使用websocket协议。
websocket和socket几乎没有任何关系,只是叫法相似。
展开
评论
#青训营笔记创作活动#
12月16日 打卡day6
DHCP抓包
为什么DHCP用UDP,能不能改用TCP?
为什么第二阶段不是广 播,而是单播。

电脑插上网线,联网后会通过DHCP协议动态申请一个IP,同时获得子网掩码,路由器地址等信息。
DHCP分为四个阶段,分别是 Discover,Offer, Request和ACK。如果曾经连过这个网,机器会记录你上次使用的IP,再次连接时优先使用原来的那个IP,因此只需要经历第三第四阶段。
DHCP是应用层协议,考虑到需要支持广播功能,底层使用的是UDP协议,而不是TCP协议。
DHCP分配下来的IP是有可能跟某台手动配置的IP地址重复的。
DHCP得到IP之后还会发3次无偿ARP通告,在确认没有冲突后开始使用这个IP。
展开
评论
#青训营笔记创作活动#
12月15日 打卡day5
文主要是整理 SQL失效场景
索引建立不当或使用顺序未遵循最左匹配原则一
最左缀原则必须遵守吗
索引列上使用了函数
索引列上有计算操作
Like左边包含%_在 这个基础上还可以优化吗?
使用OR关键字
in使用不当
not in和not exists
order By使用不当
为什么不推荐使用Select 会造成什么问题
失效原因总结 结论汇总
回表问题怎么优化 ICP怎么配合联合索引去降低回表的次数
展开
评论
#青训营笔记创作活动#
12月14日 打卡day4
客户端转服务端开发最大的挑战
如何高效转型做服务端开发?如何高效学完Go基础?
在熟练掌握Go基础之后,如何进阶?进阶要掌握哪些知识点?
客户端转服务端在编程思维上的转变;再通过软件架构演进史带大家了解了从单体架构到集中式架构,
再到目前主流的分布式微服务架构,为进阶实战指明了方向。
展开
评论
#青训营笔记创作活动#
12月13日 打卡day3
学习到InnoDB节点的存储内容,3层B+树计算,要是针对 “InnoDB中高度为3的B+树最多可以存多少数据” 这一话题进行讲解的。
在做项目考虑分表的时候还是得多关注一下表的实际情况,而不是盲目的认为两千万数据就是那个临界点。
展开
评论
#青训营笔记创作活动#
12月12日 打卡day2
文章介绍了很多插件工具并进行了功能的阐述,IDEA是程序员用的最多的开发工具,很多程序员想把它打造成一站式开发工具,于是安装了各种各样的插件。通过插件在IDEA中完成各种操作,无需安装其他软件,确实很方便。认识到了插件的强大。
展开
评论
学生
学生
#青训营笔记创作活动#
12月11日 打卡day1
今天学习到了常用限流的几种方式如:计数器、滑动窗口、漏桶限令牌桶限流、Redis + Lua 分布式限流等,并初步了解了它们的优缺点。文章采用了许多图片对其算法实现进行了生动的展示。
评论
下一页