获得徽章 1
#青训营笔记创作活动#
1月12日 打卡day17
今天学习了
一、一条SQl是如何诞生的?
二、一 条SQL执行前会经历的过程
三、一条SQL语句在数据库中是匙如何执行
四、一条SQL执行完成后是如何返回的?
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月11日 打卡day16
今日学习了502问题的排查
HTTP状态码用来表示响应结果的状态,其中200是正常响应,4xx是客户端错误,5xx是服务端错误。
客户端和服务端之间加入nginx,可以起到反向代理和负载均衡的作用,客户端只管向nginx请求数据,并不关心这个请求具体由哪个服务器来处理。
后端服务端应用如果发生崩溃,nginx在访问服务端时会收到服务端返回的RST报文,然后给客户端返回502报错。502并不是服务端应用发出的,而是nginx发出的。因此发生502时,后端服务端很可能没有没有相关的502日志,需要在nginx侧才能看到这条502日志。
如果发现502,优先通过监控排查服务端应用是否发生过崩溃重启,如果是的话,再看下是否留下过崩溃堆栈日志,如果没有日志,看下是否可能是oom或者是其他原因导致进程主动退出。如果进程也没崩溃过,去排查下nginx的日志,看下是否将请求打到了某个不知名IP端口上。
展开
评论
1
#青训营笔记创作活动#
1月8日 打卡day15
今天学习了优秀后端都应该具备的开发好习惯,
1.注释尽可能全面,写有意义的方法注释
2.项目拆分合理的目录结构
3. 不在循环里远程调用、或者数据库操作,优先考虑批量进行。
4.封装方法形参
5.封装通用模板
6.封装复杂的逻辑判断条件
7.保持优化性能的嗅觉
8.可变参数的配置化处理
9.会总结并使用工具类。
10.控制方法函数复杂度
11.在finally块中对资源进行释放
12.把日志打印好
13.考虑异常,处理好异常
1月8日 打卡day15
今天学习了优秀后端都应该具备的开发好习惯,
1.注释尽可能全面,写有意义的方法注释
2.项目拆分合理的目录结构
3. 不在循环里远程调用、或者数据库操作,优先考虑批量进行。
4.封装方法形参
5.封装通用模板
6.封装复杂的逻辑判断条件
7.保持优化性能的嗅觉
8.可变参数的配置化处理
9.会总结并使用工具类。
10.控制方法函数复杂度
11.在finally块中对资源进行释放
12.把日志打印好
13.考虑异常,处理好异常
展开
评论
1
#青训营笔记创作活动#
1月7日 打卡day14
今天学习了网络原理,从单机到互联:本质是通信问题,数据传输方式:电路交换、报文交换、分组交换
转发&标识思想,集线器(Hub),交换机,报文交换.,分组交换,路由器,IP地址。
1月7日 打卡day14
今天学习了网络原理,从单机到互联:本质是通信问题,数据传输方式:电路交换、报文交换、分组交换
转发&标识思想,集线器(Hub),交换机,报文交换.,分组交换,路由器,IP地址。
展开
评论
1
#青训营笔记创作活动#
1月6日 打卡day13
今天学习了MySQL整体结构以及网络连接层,数据库连接池(Connection PooD,四系统服务层
SQL接口,解析器、优化器、缓存&缓冲.、存储引擎层文件系统层、日志模块、数据模块
1月6日 打卡day13
今天学习了MySQL整体结构以及网络连接层,数据库连接池(Connection PooD,四系统服务层
SQL接口,解析器、优化器、缓存&缓冲.、存储引擎层文件系统层、日志模块、数据模块
展开
评论
1
#青训营笔记创作活动#
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用于解密。
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用于解密。
展开
评论
1
#青训营笔记创作活动#
12月31日 打卡day11
今天学习了写出漂亮代码的些许技巧和具体场景的实际操作,要及时对自我进行调整。
注意规范和使用场景的正确性。
12月31日 打卡day11
今天学习了写出漂亮代码的些许技巧和具体场景的实际操作,要及时对自我进行调整。
注意规范和使用场景的正确性。
评论
1
#青训营笔记创作活动#
12月30日 打卡day10
今天学习到TCP为了实现可靠性,引入了重传机制、流量控制、滑动窗口、拥塞控制、分段以及乱序重排机制。而UDP则没有实现,因此一般来说TCP比UDP快。CP是面向连接的协议,而UDP是无连接的协议。这里的"连接"其实是,操作系统内核在两端代码里维护的一套复杂状态机。大部分项目,会在基于UDP的基础上,模仿TCP,实现不同程度的可靠性机制。比如王者农药用的KCP其实就在基于UDP在应用层里实现了一套重传机制。对于UDP+重传的场景,如果要传超大数据包,并且没有实现分段机制的话,那数据就会在IP层分片,一旦丢包,那就需要重传整个超大数据包。而TCP则不需要考虑这个,内部会自动分段,丢包重传分段就行了。这种场景下,其实TCP更快。
12月30日 打卡day10
今天学习到TCP为了实现可靠性,引入了重传机制、流量控制、滑动窗口、拥塞控制、分段以及乱序重排机制。而UDP则没有实现,因此一般来说TCP比UDP快。CP是面向连接的协议,而UDP是无连接的协议。这里的"连接"其实是,操作系统内核在两端代码里维护的一套复杂状态机。大部分项目,会在基于UDP的基础上,模仿TCP,实现不同程度的可靠性机制。比如王者农药用的KCP其实就在基于UDP在应用层里实现了一套重传机制。对于UDP+重传的场景,如果要传超大数据包,并且没有实现分段机制的话,那数据就会在IP层分片,一旦丢包,那就需要重传整个超大数据包。而TCP则不需要考虑这个,内部会自动分段,丢包重传分段就行了。这种场景下,其实TCP更快。
展开
评论
1
#青训营笔记创作活动#
12月29日 打卡day9
学习到下面的几种问题的用对手段
1.遇到的 Bug 百度没有结果怎么办
2.中文翻译文献模棱两可怎么办
3.寻找外文文献的发现过程是什么样的
4.如何解决英文文档中的复杂句子
5.如何结合文档学习语法
6.结合实例带你操作“笨”方法找到适合自己的路
12月29日 打卡day9
学习到下面的几种问题的用对手段
1.遇到的 Bug 百度没有结果怎么办
2.中文翻译文献模棱两可怎么办
3.寻找外文文献的发现过程是什么样的
4.如何解决英文文档中的复杂句子
5.如何结合文档学习语法
6.结合实例带你操作“笨”方法找到适合自己的路
展开
评论
1
#青训营笔记创作活动#
12月21日 打卡day8
今日学习了Kafka 的一些基本知识,包含 Topic、Partition、消费者、生产者、副本等基本概念,同时也认识了 Kafka 的版本变迁以及应用实战所必备的知识点,最后文章以“消息可靠性分析”这个主体结尾,加深我对 Kafka 的理解。
12月21日 打卡day8
今日学习了Kafka 的一些基本知识,包含 Topic、Partition、消费者、生产者、副本等基本概念,同时也认识了 Kafka 的版本变迁以及应用实战所必备的知识点,最后文章以“消息可靠性分析”这个主体结尾,加深我对 Kafka 的理解。
展开
评论
1
#青训营笔记创作活动#
12月17日 打卡day7
CP协议本身是全双工的,但我们最常用的HTTP1.1,虽然是基于TCP的协议,但它是半双工的,对于大部分需要服务器主动推送数据到客户端的场景,都不太友好,因此我们需要使用支持全双工的websocket协议。在HTTP1.1里。只要客户端不问,服务端就不答。基于这样的特点,对于登录页面这样的简单场景,可以使用定时轮询或者长轮询的方式实现服务器推送(comet)的效果。对于客户端和服务端之间需要频繁交互的复杂场景,比如网页游戏,都可以考虑使用websocket协议。
websocket和socket几乎没有任何关系,只是叫法相似。
12月17日 打卡day7
CP协议本身是全双工的,但我们最常用的HTTP1.1,虽然是基于TCP的协议,但它是半双工的,对于大部分需要服务器主动推送数据到客户端的场景,都不太友好,因此我们需要使用支持全双工的websocket协议。在HTTP1.1里。只要客户端不问,服务端就不答。基于这样的特点,对于登录页面这样的简单场景,可以使用定时轮询或者长轮询的方式实现服务器推送(comet)的效果。对于客户端和服务端之间需要频繁交互的复杂场景,比如网页游戏,都可以考虑使用websocket协议。
websocket和socket几乎没有任何关系,只是叫法相似。
展开
评论
1
#青训营笔记创作活动#
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月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。
展开
评论
1
#青训营笔记创作活动#
12月15日 打卡day5
文主要是整理 SQL失效场景
索引建立不当或使用顺序未遵循最左匹配原则一
最左缀原则必须遵守吗
索引列上使用了函数
索引列上有计算操作
Like左边包含%_在 这个基础上还可以优化吗?
使用OR关键字
in使用不当
not in和not exists
order By使用不当
为什么不推荐使用Select 会造成什么问题
失效原因总结 结论汇总
回表问题怎么优化 ICP怎么配合联合索引去降低回表的次数
12月15日 打卡day5
文主要是整理 SQL失效场景
索引建立不当或使用顺序未遵循最左匹配原则一
最左缀原则必须遵守吗
索引列上使用了函数
索引列上有计算操作
Like左边包含%_在 这个基础上还可以优化吗?
使用OR关键字
in使用不当
not in和not exists
order By使用不当
为什么不推荐使用Select 会造成什么问题
失效原因总结 结论汇总
回表问题怎么优化 ICP怎么配合联合索引去降低回表的次数
展开
评论
1
#青训营笔记创作活动#
12月14日 打卡day4
客户端转服务端开发最大的挑战
如何高效转型做服务端开发?如何高效学完Go基础?
在熟练掌握Go基础之后,如何进阶?进阶要掌握哪些知识点?
客户端转服务端在编程思维上的转变;再通过软件架构演进史带大家了解了从单体架构到集中式架构,
再到目前主流的分布式微服务架构,为进阶实战指明了方向。
12月14日 打卡day4
客户端转服务端开发最大的挑战
如何高效转型做服务端开发?如何高效学完Go基础?
在熟练掌握Go基础之后,如何进阶?进阶要掌握哪些知识点?
客户端转服务端在编程思维上的转变;再通过软件架构演进史带大家了解了从单体架构到集中式架构,
再到目前主流的分布式微服务架构,为进阶实战指明了方向。
展开
评论
1
#青训营笔记创作活动#
12月13日 打卡day3
学习到InnoDB节点的存储内容,3层B+树计算,要是针对 “InnoDB中高度为3的B+树最多可以存多少数据” 这一话题进行讲解的。
在做项目考虑分表的时候还是得多关注一下表的实际情况,而不是盲目的认为两千万数据就是那个临界点。
12月13日 打卡day3
学习到InnoDB节点的存储内容,3层B+树计算,要是针对 “InnoDB中高度为3的B+树最多可以存多少数据” 这一话题进行讲解的。
在做项目考虑分表的时候还是得多关注一下表的实际情况,而不是盲目的认为两千万数据就是那个临界点。
展开
评论
1
#青训营笔记创作活动#
12月12日 打卡day2
文章介绍了很多插件工具并进行了功能的阐述,IDEA是程序员用的最多的开发工具,很多程序员想把它打造成一站式开发工具,于是安装了各种各样的插件。通过插件在IDEA中完成各种操作,无需安装其他软件,确实很方便。认识到了插件的强大。
12月12日 打卡day2
文章介绍了很多插件工具并进行了功能的阐述,IDEA是程序员用的最多的开发工具,很多程序员想把它打造成一站式开发工具,于是安装了各种各样的插件。通过插件在IDEA中完成各种操作,无需安装其他软件,确实很方便。认识到了插件的强大。
展开
评论
1
#青训营笔记创作活动#
12月11日 打卡day1
今天学习到了常用限流的几种方式如:计数器、滑动窗口、漏桶限令牌桶限流、Redis + Lua 分布式限流等,并初步了解了它们的优缺点。文章采用了许多图片对其算法实现进行了生动的展示。
12月11日 打卡day1
今天学习到了常用限流的几种方式如:计数器、滑动窗口、漏桶限令牌桶限流、Redis + Lua 分布式限流等,并初步了解了它们的优缺点。文章采用了许多图片对其算法实现进行了生动的展示。
评论
2