08 2020 档案
raft算法
摘要:Raft 的原理:转载:https://www.jianshu.com/p/8e4bbe7e276c 1. Raft 节点状态 从拜占庭将军的故事映射到分布式系统上,每个将军相当于一个分布式网络节点,每个节点有三种状态:Follower,Candidate,Leader,状态之间是互相转换的,可以参
阅读全文
Kafka是如何利用零拷贝提高性能的
摘要:转载;https://www.cnblogs.com/zz-ksw/p/12801632.html Kafka 在执行消息的写入和读取这么快的原因,其中的一个原因是零拷贝(Zero-copy)技术,下面我们来了解一下这么高效的原因。 传统的文件读写 传统的文件读写或者网络传输,通常需要将数据从内核态
阅读全文
http常见问题
摘要:HTTP 和 HTTPS 的区别 HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol),HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范HTTP 主要内容分为三部分,超文本(Hypertext)、传输(Transfe
阅读全文
分布式ID生成
摘要:一、为什么要用分布式ID? 在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征? 1、什么是分布式ID? 拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日
阅读全文
面试中的 IO 多路复用
摘要:转载:https://mp.weixin.qq.com/s/iVfLZJ89UMtu3Z5IgpoCoQ 1、什么是IO多路复用 「定义」 IO多路复用是一种同步IO模型,实现一个线程可以监视多个文件句柄;一旦某个文件句柄就绪,就能够通知应用程序进行相应的读写操作;没有文件句柄就绪时会阻塞应用程序,
阅读全文
进程调度算法
摘要:01. 进程调度算法概述 调度算法是指:根据系统的资源分配策略所规定的资源分配算法 02. 先来先服务调度算法 先来先服务调度算法是一种最简单的调度算法,也称为先进先出或严格排队方案。当每个进程就绪后,它加入就绪队列。当前正运行的进程停止执行,选择在就绪队列中存在时间最长的进程运行。该算法既可以
阅读全文
http请求头包括了哪些常见内容
摘要:Host: www.study.com // 请求的地址域名和端口,不包括协议 Connection: keep-alive // 连接类型,持续连接 Upgrade-Insecure-Requests:1 // http 自动升级到https,防止跨域问题但是域名端口都不同的不会提升 User-A
阅读全文
c++面试题整理
摘要:1、 一个C++源文件从文本到可执行文件经历的过程 2、#include 的顺序以及尖叫括号和双引号的区别 3、进程和线程,为什么要有线程 4、C++11有哪些新特性 5、malloc的原理,brk系统调用干什么的,mmap呢 6、C++的内存管理方式,STL的allocator,最新版本默认使用的
阅读全文
TCP如何保证传输可靠性
摘要:转载:https://www.iteye.com/blog/uule-2429131 TCP协议保证数据传输可靠性的方式主要有: (校序重流拥) 校验和 发送的数据包的二进制相加然后取反,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段。 确
阅读全文
TCP流量控制和拥塞控制
摘要:转载:https://www.cnblogs.com/wxgblogs/p/5616829.html TCP的流量控制 所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受。利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制。TCP的窗口单位是字节,不是报文段,发送方的发送
阅读全文
python常见问题(GIL锁,垃圾回收)
摘要:GIL线程全局锁 线程全局锁(Global Interpreter Lock),即Python为了保证线程安全而采取的独立线程运行的限制,说白了就是一个核只能在同一时间运行一个线程.对于io密集型任务,python的多线程起到作用,但对于cpu密集型任务,python的多线程几乎占不到任何优势,还有
阅读全文
epoll详解
摘要:https://blog.csdn.net/daaikuaichuan/article/details/83862311 https://blog.csdn.net/songchuwang1868/article/details/89877739 设想一个场景:有100万用户同时与一个进程保持着TC
阅读全文
二维数组按行和按列遍历效率
摘要:按行遍历效率高。 对c语言而言,数组在内存中是按行储存的,按行遍历时可以由指向数组第一个数的指针一直往下走,就可以遍历完整个数组,而按列遍历则要获得指向每一列的第一行的元素的指针,然后每次将指针指下一行,但是指针的寻址很快,所以不会有明显的区别。 按行遍历比按列遍历效率高体现在哪里呢? 1、CPU高
阅读全文
一个 TCP 链接能够发多少个 HTTP 请求?
摘要:转载:https://www.shangmayuan.com/a/0648d9157e584bf7931bddd6.html 曾经有这么一道面试题:从 URL 在浏览器被被输入到页面展示的过程当中发生了什么? 相信大多数准备过的同窗都能回答出来,可是若是继续问:收到的 HTML 若是包含几十个图片标
阅读全文
tcp/ip常见面试题
摘要:【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手? 答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所
阅读全文
TCP连接的TIME_WAIT和CLOSE_WAIT 状态解说
摘要:转载:https://www.cnblogs.com/kevingrace/p/9988354.html 相信很多运维工程师遇到过这样一个情形: 用户反馈网站访问巨慢, 网络延迟等问题, 然后就迫切地登录服务器,终端输入命令"netstat -anp | grep TIME_WAIT | wc -l
阅读全文
http常见返回码
摘要:HTTP协议状态码表示的意思主要分为五类 ,大体是 : 1×× 保留2×× 表示请求成功地接收3×× 为完成请求客户需进一步细化请求4×× 客户错误5×× 服务器错误保留100 Continue指示客户端应该继续请求。回送用于通知客户端此次请求已经收到,并且没有被服务器拒绝。客户端应该继续发送剩下的
阅读全文
浏览器工作原理与实践总结
摘要:转载:https://segmentfault.com/a/1190000020372713?utm_source=tag-newest 一、常用Chrome架构 Chrome 打开一个页面需要启动多少进程?你可以点击 Chrome 浏览器右上角的“选项”菜单,选择“更多工具”子菜单,点击“任务管理
阅读全文
你在浏览器输入一个URL都经历了什么过程
摘要:一:相关概念说明: 1.1: DNS(Domain name System)缓存: (域名系统)(查看本机的ipconfig/displaydns) 当电脑把一个域名解析完之后,它把这个这个域名和那个主机Ip地址相关联起来了,电脑吧这个关系存到DNS缓存表中,下次电脑再输入www.baidu.com
阅读全文
浙公网安备 33010602011771号