http多版本间区别 1.对头阻塞是什么 队头阻塞是指:前面的请求或响应未完成,导致后面的请求或响应被阻塞,不能继续处理 1.2 HTTP/1.1 中的队头阻塞问题: 虽然 HTTP/1.1 支持持久连接(Keep-Alive),但在同一个 TCP 连接中,请求必须串行发送,响应也必须按顺序返回。 如果前一个响应较慢,就会阻塞后续响应的发送,即使后续请求可以很快处理也得排队。 为了缓解这个问题,浏 2025-08-30 学习笔记 #网络
TLS加密过程 整理基于TLS 1.2 TLS 握手主要包含两个阶段的加密机制: 非对称加密用于:证书验证 + 密钥交换(加密 pre-master secret) 对称加密用于:实际数据传输(HTTP 内容) + 握手完成消息的加密校验 1.整个 TLS 1.2 握手过程如下:1.1 TCP 连接建立客户端与服务器先通过TCP三次握手建立可靠连接 1.2 ClientHello(客户端发起)客户端发送: 2025-08-30 学习笔记 #网络
redis数据结构 redis 数据结构1 SDS 简单动态字符串 len 字段,O(1)获取长度,二进制安全 alloc 字段,分配的空间长度 flags sds类型 sdshdr5、sdshdr8、sdshdr16、sdshdr32、sdshdr64,五种类型结构体灵活保存不同长度字符串 取消内存对齐,进一步节省内存 buf数组,字节数组,不仅可以保存字符串,还能保存二进制数据 扩容规则 新长度 < 2025-08-30 学习笔记 #中间件 #Redis
输入URL到网页显示中间发生了什么 1.精简版回答:当浏览器输入 URL 后,整个流程大致如下: URL 解析:浏览器解析 URL,提取协议、主机名、端口和路径信息。 DNS 解析:通过本地缓存或 DNS 查询将域名解析为目标服务器的 IP 地址。 建立 TCP 连接(三次握手):使用解析到的 IP 地址,通过 TCP 协议与目标服务器建立连接。 IP 层处理与路由寻址:TCP 报文封装进 IP 数据报,由 IP 层根据路由 2025-07-25 学习笔记 #网络
MySQL innodb锁机制原理 1.锁的类型1.1 占有模式 共享锁 Share Lock/S锁 排他锁 Exclusive Lock/X锁 S X S 兼容 不兼容 X 不兼容 不兼容 对行记录加X锁insert、update、delete以及显式的 for update 语句都会对行记录加X锁 1234select * from table_name where id = 1 2025-06-07 学习笔记 #MySQL
kafka分区重分配与Rebalance过程 1.Kafka分区重分配Kafka分区重分配是Kafka集群管理中的一个重要操作,它涉及将分区从一组broker移动到另一组broker。下面我将详细分析分区重分配的触发场景、策略以及可能带来的问题。 1.1 分区重分配的触发场景 集群扩容 :当向Kafka集群添加新的broker节点时,需要将现有分区重新分配到新节点上以实现负载均衡 broker下线 :当需要下线某个broker时,需要将该br 2025-05-31 学习笔记 #中间件 #kafka
Kafka Controller控制器 Kafka Controller控制器职责Kafka Controller是Kafka集群中的一个核心组件,负责管理和协调整个集群的状态。在Kafka集群中,只有一个broker会被选举为Controller,它承担着集群管理的重要职责。 1.Controller的主要职责1.1 Broker管理 监控Broker状态:实时监控集群中所有Broker的上线和下线状态 处理Broker故障:当Bro 2025-05-31 学习笔记 #中间件 #kafka
grpc-go底层实现三:grpc客户端头帧发送过程 newClientStreamWithParams 方法详细分析newClientStreamWithParams 方法位于 stream.go 文件的第260-404行,是 gRPC 客户端创建流式连接的核心方法。这个方法负责初始化客户端流,设置上下文、超时、压缩选项,并创建与服务器的连接。下面我将详细分析这个方法的功能及其调用关系。 方法功能分析1. 上下文和超时处理123456var can 2025-05-31 学习笔记 #grpc
grpc-go底层实现二:客户端与服务端建立连接过程 NewHTTP2Client 方法详细分析NewHTTP2Client 方法是 gRPC 客户端创建 HTTP/2 传输层连接的核心方法,负责建立与服务器的 HTTP/2 连接,并设置相关参数。下面我将详细分析这个方法的功能、流程以及头帧发送与连接建立的过程。 方法功能概述NewHTTP2Client 方法位于 internal/transport/http2_client.g 2025-05-26 学习笔记 #grpc
grpc-go底层实现一:gRPC Client初始化与连接建立准备工作 基于grpc-go 的v1.72.0 gRPC 客户端创建过程分析分析 clientconn.go 中的 NewClient 方法及其调用的方法,详细阐述 gRPC 在创建客户端时的工作流程。 1. 客户端创建流程概述gRPC 客户端创建主要通过 NewClient 方法完成,该方法创建一个 ClientConn 对象,这是 gRPC 客户端的核心组件。整个创建过程可以分为以下几个主要阶段: 2025-05-26 学习笔记 #grpc