自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 书本大纲:从芯片、分布式到云计算AI时代

本文系统探讨了现代计算领域的核心技术体系。在并发编程部分,分析了Java与Golang的并发模型差异;Java虚拟机章节解析了JIT编译与GC优化;RPC框架重点讨论网络模型与协议设计;高并发系统设计提出分层抗压和过载保护策略;分布式系统剖析了CAP理论与一致性算法;云原生部分探讨容器编排与Serverless未来。文章从底层原理到架构设计,全面覆盖了高性能系统的关键技术挑战与解决方案,为构建可靠高效的分布式系统提供了系统性思考框架。

2025-07-24 10:43:47 604

原创 书本介绍:技术札纪——有限硬件与无限计算的权衡艺术

在当前技术飞速发展的时代,开发者面临着一个看似无法调和的难题:一边是有限的硬件与资源,另一边是无限增长的计算与业务需求。如何在秩序、效率和弹性之间做出明智的权衡,不仅是技术的考验,更是一门决策的艺术。本书,便是对这门艺术的思考与记录。

2025-07-23 21:29:52 622

原创 从同步耦合到异步解耦:消息中间件如何重塑系统间的通信范式?

消息中间件通过异步通信机制解决服务间紧密耦合问题,支持解耦、有序处理、异步操作和流量削峰等场景。其架构包含生产者、Broker集群、消费者和元数据中心四个核心组件。Kafka和RocketMQ采用不同方式实现集群扩展,但都基于主题(Topic)实现发布-订阅模式,使生产者和消费者解耦。主题作为消息分类标识,允许多个消费者接收同一消息,提升系统灵活性和可扩展性。

2025-11-11 22:59:11 693

原创 从局部性原理到一致性模型:深入剖析缓存设计的核心权衡

缓存利用局部性原理(时间与空间)提升系统性能,将热点数据存储在高速介质中。本地缓存(如Guava Cache)访问快但一致性差,远程缓存(如Redis)共享性强但速度较慢,多级缓存可兼顾两者优势。缓存一致性涉及旁路、穿透等策略;过载保护需防止穿透(布隆过滤器/空缓存)、击穿(互斥锁)和雪崩(随机过期/限流)。缓存设计需在性能、一致性和成本间权衡。

2025-11-10 15:12:57 606

原创 万丈高楼平地起:从“输入-处理-输出”第一性原理,看懂系统架构的演进

本文探讨了系统架构演进与抗压设计。随着互联网业务规模扩张,传统单体架构面临性能瓶颈,促使系统向分布式集群转型。这种演进在解决单点瓶颈的同时,也带来了新的技术挑战:1)性能方面需要引入缓存层应对网络延迟;2)通过消息中间件实现服务解耦和流量削峰;3)利用数据库事务机制保障分布式数据一致性。文章揭示了现代系统设计的核心矛盾——在追求可扩展性的同时,必须协调好性能、可靠性和一致性的关系。分层抗压架构正是通过缓存、消息中间件和数据库这三大技术支柱的协同作用,构建弹性系统以应对高并发场景。

2025-11-07 16:29:16 400

原创 内存泄漏 vs. 内存溢出:剖析Java虚拟机两大内存绝症的病因与疗法

Java内存管理中的内存泄漏与内存溢出是两类关键问题。内存泄漏指无用对象因不当引用而无法回收,逐渐耗尽内存;内存溢出则是直接内存申请失败导致的崩溃。预防措施包括:合理设置JVM参数、优化对象生命周期管理、使用弱引用及检测工具(MAT/VisualVM)。垃圾回收技术通过分代管理(新生代/老年代)、三色标记法和G1收集器等机制,在吞吐量、延迟与内存开销间寻求平衡。有效监控GC日志和堆转储是排查问题的关键。(149字)

2025-11-06 21:50:25 873

原创 告别漫长GC停顿:深入解析G1如何实现可预测的毫秒级响应

G1垃圾回收器是JDK 9后服务端的默认回收器,通过创新的Region分区设计和停顿预测模型实现可控停顿时间。它将堆划分为等大Region,动态调整回收策略,优先处理垃圾最多的Region(Garbage-First)。核心机制包括: 记忆集(RSet)跟踪跨Region引用 两种回收模式:Young GC(新生代)和Mixed GC(新生代+部分老年代) 四阶段工作流程(初始标记→并发标记→最终标记→筛选回收) 虽然存在内存占用较高、并发操作复杂等缺点,但G1在大内存场景(>6GB)下相比传统回收器

2025-11-05 18:24:06 621

原创 深夜告警,2.5G内存离奇失踪!

本文记录了腾讯云COS SDK引发的Java内存泄漏排查过程。通过分析线上OOM错误,使用HeapDump和MAT工具定位到9366个未释放的PoolingHttpClientConnectionManager对象,占内存2.5G。进一步追踪发现是IdleConnectionMonitorThread未被关闭导致。问题根源在于业务代码未调用SDK的shutdown方法。修复后系统恢复正常。文章还总结了内存泄漏的排查流程:监控识别→HeapDump分析→引用链追踪→修复验证,并强调了对资源型对象(连接池、线程

2025-11-04 17:10:20 743

原创 从Serial到CMS,一文纵览Java垃圾回收器的演进史

Java垃圾回收器类型及特点概述 Java虚拟机提供了多种垃圾回收器,各有特点: Serial GC:单线程回收器,适合资源有限环境,简单高效但停顿时间长 Parallel Scavenge GC:多线程吞吐量优先回收器,适合批处理任务 ParNew GC:Serial GC的多线程版本,常与CMS配合使用 Serial Old GC:Serial GC的老年代版本,是CMS的后备方案 Parallel Old GC:Parallel Scavenge的老年代版本,实现全面并行化 CMS GC:低停顿回收器

2025-11-03 16:38:38 832

原创 吞吐量、延迟、内存:深入理解垃圾回收的“三元悖论”

垃圾回收算法评价需权衡吞吐量、延迟和内存效率三大指标。吞吐量衡量计算资源利用率,适合批处理任务;延迟关注最大停顿时间,关键于实时系统;内存效率涉及堆利用率和碎片问题。三者构成“不可能三角”,需根据应用场景取舍:计算密集型优先吞吐量,交互式系统侧重延迟,内存受限环境则关注堆效率。不同算法(如Parallel GC、G1、ZGC)针对不同需求设计,选择时需匹配业务特性。

2025-11-02 23:46:23 283

原创 不止新生代与老年代:深入Java虚拟机堆内存布局与TLAB、卡表等优化机制

本文介绍了Java虚拟机(JVM)运行时数据区域的结构与内存管理机制。在JDK8中,JVM运行时数据区包括堆、方法区(元空间)、栈、程序计数器、本地方法栈和直接内存。堆采用分代回收理念,划分为新生代(Eden+Survivor区)和老年代,基于对象生命周期采用不同的垃圾回收策略(Minor/Major/Full GC)。为提高分配效率,使用TLAB线程私有缓冲区。针对跨代引用问题,通过卡表实现记忆集机制,利用写屏障标记脏页,优化Minor GC扫描范围。文中还展示了各内存区域的示意图和实现细节。

2025-10-31 17:59:54 847

原创 为什么我的应用会卡顿?垃圾回收中的STW难题与破解之道

本文介绍了三种垃圾回收算法:清除、压缩和复制。清除算法通过空闲列表管理内存,但会产生碎片;压缩算法移动存活对象避免碎片,但耗时较长;复制算法将活动对象复制到新空间,效率高但需要额外内存。同时讨论了并发标记中的三色标记算法及其漏标问题,提出使用写屏障技术(增量更新和SATB)确保并发环境下的正确回收。这些方法各有优劣,需要根据应用场景权衡选择。

2025-10-30 12:13:57 977

原创 谁生?谁死?从引用计数到可达性分析,洞悉GC的决策逻辑

本文探讨了垃圾回收中两种主要的对象存活判定方法:引用计数与可达性分析。引用计数通过计数器记录对象引用数量,但无法处理循环引用问题;可达性分析则从GC Roots出发,通过引用链判断对象是否存活,能有效解决循环引用问题。文章还分析了两种方法各自的优缺点,并指出可达性分析需要解决误标和漏标问题,为此Java虚拟机采用Stop-the-world机制和安全点来确保垃圾回收的正确性。最后提到传统垃圾回收算法对应用性能的影响,为后续内容埋下伏笔。

2025-10-29 00:05:49 534

原创 压缩指针:64位系统下,Java虚拟机是如何“偷”回4字节内存的?

Java对象在内存中由对象头、实例数据和对齐填充三部分组成。对象头包含运行时数据(Mark Word)和类指针(Klass Pointer),64位系统下通过压缩指针技术将对象头从16字节压缩至12字节。实例数据存储对象属性,对齐填充确保内存地址按8字节对齐以提升寻址效率。压缩指针通过偏移量计算实现32位存储,但仅适用于堆内存小于32GB的场景。这一设计优化了内存使用和访问性能。

2025-10-27 21:00:30 923

原创 为什么Java/Python程序无需关心内存释放?揭秘垃圾回收(GC)的核心概念

本文深入解析Java虚拟机(JVM)的垃圾回收机制。文章首先介绍了垃圾回收的概念,指出其核心任务是自动回收不再使用的内存空间,以解决手动内存管理常见的内存泄漏等问题。重点阐述了对象、堆、根等核心概念,详细说明了对象在内存中的结构以及堆内存分配机制。同时解释了Mutator的作用及其与垃圾回收器的协调机制。文章还讨论了垃圾回收面临的挑战,包括计算资源消耗和程序暂停等问题。通过分析标记-清除等算法,揭示了自动内存管理在程序响应速度、内存利用率和计算资源之间寻求平衡的系统设计艺术。

2025-10-24 17:32:47 623

原创 jemalloc思想的极致演绎:深度解构Netty内存池的精妙设计与实现

Netty内存池采用jemalloc设计思想,通过多Arena架构实现高效内存分配。核心组件包括: Chunk(16MB)作为基本单位,划分为8KB Page; 采用伙伴算法管理Page,二叉树记录分配状态; 小内存(<8KB)由Subpage管理,Tiny(16B-512B)和Small(512B-8KB)两类规格使用位图分配; ChunkList按使用率组织,重叠区间设计避免频繁移动; 线程本地缓存与三级优化(无锁访问/缓存亲和/资源隔离)提升性能。 该设计通过结构化预置和精准复用,将动态内存操作

2025-10-23 14:46:48 700

原创 “化零为整”的智慧:内存池如何绕过系统调用和GC,构建性能的护城河

内存池技术通过预分配大块内存并自主管理,有效解决高性能系统中的内存分配瓶颈。相比传统malloc/new方式,它能规避系统调用开销、内存碎片和锁竞争问题。常见实现包括链表管理、定长分配和多段定长池。对于Java等语言,堆外内存可进一步避免GC停顿和数据拷贝,实现接近零拷贝的高效I/O。内存池搭配堆外内存使用能显著提升系统吞吐量,降低延迟抖动,是构建高性能服务的关键技术。

2025-10-22 22:10:19 415

原创 职责分离的艺术:剖析主从Reactor模型如何实现极致的并发性能

本文介绍了Reactor模型的三种实现方案及其优化策略。单线程模型易受业务逻辑阻塞,工作者线程池模型通过分离I/O和非I/O操作提升性能,主从多线程模型进一步采用多线程设计处理连接与通信。文章还探讨了Reactor与过滤器链、异步编程的结合应用,通过伪代码展示了主从多线程模型的异步处理流程。这些优化方案能有效提升系统吞吐量和响应速度,适用于高并发场景。

2025-10-21 20:16:50 1311

原创 从C10K到Reactor:事件驱动,如何重塑高并发服务器的网络架构

事件驱动是一种编程范式,通过异步事件控制程序流程,由事件源、事件、事件循环和事件处理器组成。Reactor模型解决了C10K问题,利用I/O多路复用机制,使单线程高效处理大量连接,克服了传统多线程模型的瓶颈,但存在编程复杂度高的局限。

2025-10-20 21:11:28 458

原创 单线程如何撑起百万连接?I/O多路复用:现代网络架构的基石

I/O多路复用是一种高效的并发I/O模型,通过单线程监控多个文件描述符,避免了非阻塞I/O轮询的资源浪费。从select/poll到epoll的技术演进中,epoll采用红黑树管理和回调机制,实现了O(1)时间复杂度的事件检测,支持LT/ET两种触发模式。虽然仍属同步I/O,但结合事件循环+线程池的模式可显著提升系统吞吐量。该技术是现代高性能网络编程的核心基础。(149字)

2025-10-17 20:34:56 1677

原创 你的程序为何卡顿?从LINUX I/O三大模式寻找答案

本文介绍了Linux中的I/O交互流程和三种主要I/O操作方式。内核空间和用户空间通过系统调用进行I/O交互,数据需在内核缓冲区和用户缓冲区之间复制。阻塞I/O简单但并发性能差;非阻塞I/O通过轮询提高并发性但增加复杂度;异步I/O通过回调实现最高性能,但实现复杂且平台支持有限。每种方式各有优缺点,适用于不同场景。

2025-10-16 21:21:54 819

原创 “一切皆文件”:揭秘LINUX I/O与虚拟内存的底层设计哲学

本文深入剖析了RPC框架的网络模型设计与Linux系统底层机制。首先介绍了RPC框架在网络通信中的核心作用,重点探讨了高并发场景下的性能优化策略。随后详细解析了Linux系统的分层架构,包括硬件层、内核空间、用户空间和系统调用接口,并阐述了"一切皆文件"的设计哲学。最后讲解了虚拟内存管理机制及其在内存扩展和进程隔离方面的作用,指出过度页面交换可能导致的性能问题。文章为理解现代网络通信和操作系统底层原理提供了技术参考。

2025-10-15 17:37:13 494

原创 Goroutine间的“灵魂管道”:Channel如何实现数据同步与因果传递?

Golang的Channel是Goroutine间通信的核心机制,基于CSP模型实现,无需显式锁即可安全传递数据。其底层通过hchan结构体管理循环队列和等待队列,支持缓冲和非缓冲两种模式。发送/接收操作遵循特定happens-before规则保证内存可见性。Channel适用于并发控制、信号通知和异步结果获取等场景,相比Java的共享内存模型,Golang通过消息传递将并发问题转化为数据流设计,降低了开发者的心智负担。两种并发模型分别体现了显式同步和隐式因果的哲学差异。

2025-10-14 22:10:04 897

原创 “不要通过共享内存来通信”——深入理解Golang并发模型与CSP理论

Golang并发模型基于CSP理论,倡导"通过通信共享内存"而非共享内存通信。其核心组件是Goroutine和Channel:Goroutine作为轻量级协程实现并发执行,Channel则作为通信管道协调Goroutine间的消息传递。这种设计避免了传统并发编程中的锁竞争问题,将复杂性从状态管理转移到通信编排上,使并发逻辑更清晰可靠。Goroutine创建成本低,Channel支持异步通信,二者结合构成了Golang高效并发的基础框架。

2025-10-13 21:12:54 276

原创 揭秘JUC:volatile与CAS,并发编程的两大基石

JUC(java.util.concurrent)并发包是Java并发编程的核心工具,由Doug Lea设计。它基于volatile和CAS操作实现线程安全,通过AQS框架维护同步状态。文章分析了Lock的获取与释放机制,展示了volatile变量state如何保证可见性和有序性,以及CAS操作如何确保原子性。JUC并发包采用"volatile+CAS"模式构建线程安全类,广泛应用于AQS、ConcurrentHashMap等组件中,为Java并发编程提供了高效解决方案。

2025-09-27 11:27:13 792

原创 从MESA模型到锁升级:synchronized性能逆袭的底层逻辑

本文介绍了Java并发编程中的管程(Monitor)机制及其实现模型MESA。管程通过入口等待队列和条件变量等待队列解决线程互斥与同步问题,Java的synchronized关键字参考了MESA模型但只支持一个条件变量。文章详细分析了synchronized的实现原理,包括字节码层面的monitorenter/monitorexit指令和性能优化策略(偏向锁、轻量级锁等),并给出使用注意事项(避免死锁、锁粒度控制等)。最后提到可重入特性及代码示例,为Java并发编程提供了实用指导。

2025-09-25 10:31:44 1146

原创 一把锁的两种承诺:synchronized如何同时保证互斥与内存可见性?

本文介绍了Java中synchronized关键字的原理与应用。临界区是多线程环境下需要保护的共享资源访问区域,synchronized通过对象锁机制实现互斥访问。文章详细说明了synchronized两种使用方式(修饰方法和代码块),并通过happens-before规则和内存语义分析其实现原理。synchronized不仅提供互斥访问,还具备类似volatile的内存可见性保障,确保线程间数据一致性。

2025-09-24 10:09:06 1045

原创 从混沌到秩序:Java共享内存模型如何通过显式约束驯服并发?

本文探讨并发编程的两种范式:显式同步约束(如Java共享内存模型)和隐式因果传递(如Golang消息传递模型)。Java通过synchronized、volatile等机制实现线程同步,要求开发者显式控制共享资源访问,但带来较大心智负担;Golang则通过Channel实现隐式编排,以通信代替共享。文章将分析两者如何确保内存可见性和数据因果序,展现并发编程哲学的差异。Java部分重点介绍了其共享内存模型的高效性及同步挑战,包括竞态条件和死锁风险。

2025-09-23 10:12:19 556

原创 绯闻女孩不只会八卦:从“验明正身”到“抓内鬼”,Gossip的进阶玩法

本文介绍了分布式系统中的关键技术:默克尔树用于高效数据验证,结合反熵算法优化同步;Gossip协议实现去中心化故障检测,通过信息传播和多数表决机制;系统设计需权衡一致性、可用性和分区容忍性,采用不同数据分布、副本和协调机制(如Lease、Quorum、逻辑时钟)来满足需求。分布式系统设计是复杂权衡过程,需根据场景选择合适方案。

2025-09-19 09:55:39 252

原创 技术圈的“绯闻女孩”:Gossip是如何把八卦秘密传遍全网的?

Gossip协议是一种去中心化的分布式协议,通过模拟人类社会信息传播方式实现节点间状态同步。协议采用周期性随机选择节点进行信息交换,包含三种主要传播方式:直接邮寄快速传播但不保证送达;反熵通过推、拉或推拉方式消除节点间数据差异;谣言传播则让持有新信息的节点主动扩散,直到大多数节点知晓。这些机制共同确保了分布式系统中元数据的高效、可靠同步,适用于节点数有限的集群环境。

2025-09-18 07:17:48 1731

原创 系统里数据又“打架”了?让“少数服从多数”来终结这场混乱!

Quorum机制是分布式系统中实现数据一致性的核心方法,基于鸽巢原理确保读写操作在副本间相遇。通过设定副本数N、写一致性级别W和读一致性级别R三要素,当W+R>N时可保证强一致性。不同NWR组合能优化读写性能或容错性。该机制还可用于Leader选举,通过版本号比较和副本同步确保数据一致性。Quorum机制在分布式系统中平衡了一致性、可用性和容错性需求。

2025-09-17 10:38:30 1101

原创 “鸡蛋不能放一个篮子里”,如何确保千亿数据万无一失?

分布式系统通过副本机制保障数据可用性,将数据划分为等大小的数据段(如几十MB到几GB)作为副本单位。主要采用领导-追随者(主从)和多主(去中心化)两种模式:主从模式通过Leader处理写请求并同步到Follower,提供读写分离但存在一致性权衡;多主模式允许多节点处理写入,通过一致性协议同步,可用性更高但协议更复杂。副本放置策略需考虑故障域隔离,典型系统包括HBase、Kafka(主从)和Cassandra、DynamoDB(多主)。

2025-09-15 08:20:23 1226

原创 “凭什么说你比我先?”——没有上帝时钟,如何判断“谁先谁后”?

摘要:本文介绍了分布式系统中的三种时间同步机制。兰伯特逻辑时钟通过单调递增计数器捕获事件偏序关系,但无法识别并发事件。向量时钟扩展逻辑时钟,通过向量比较精确判断因果关系和并发性。版本向量应用向量时钟原理检测数据冲突,通过多版本管理和自定义策略(如客户端逻辑或"Last write win")解决副本不一致问题。这些机制为分布式系统提供事件顺序和一致性保障,但各有适用场景和局限性。(149字)

2025-09-12 11:55:17 817

原创 “你还活着吗?” “我没死,只是网卡了!”——来自分布式世界的“生死契约”

摘要: Lease机制是分布式系统的核心协调工具,通过时间限制的授权确保系统一致性。其核心逻辑包括:授权者(如Leader)授予接收方有效期内的特定权限(如资源访问权),接收方到期后需主动放弃权限。Lease可解决节点状态判定中的“双主”问题——通过颁发带时限的Leader Lease,避免因网络延迟导致的多主冲突。机制需处理授权者单点故障(采用高可用集群)和时钟同步问题(设置安全时间窗口)。ETCD等系统内置Lease功能,支持多Key绑定同一Lease以降低开销。典型应用包括节点活性检测、分布式锁等,有

2025-09-09 00:06:50 651

原创 海量数据如何“安家”?一文读懂哈希、范围和一致性哈希三大分片策略

本文介绍了三种分布式数据分布方法:哈希分布通过哈希函数将数据均匀分配到节点,但节点变化时数据迁移量大;数据范围分布按键值区间划分,适合范围查询但存在热点问题;一致性哈希(如Ketama Hash)通过虚拟节点减少节点变化时的数据迁移。文章还图示说明了各方法的原理和节点变化时的处理方式。

2025-09-08 00:07:30 1204 3

原创 “卧槽,系统又崩了!”——别慌,这也许是你看过最通俗易懂的分布式入门

分布式系统通过多节点协作解决单机性能瓶颈,核心挑战包括节点故障、网络延迟和数据一致性。本文解析了保障系统可靠性的关键机制:数据分片实现扩展性,冗余副本确保高可用,Lease机制优化资源管理,Quorum原则维护一致性,以及Gossip协议同步集群状态。这些方案为构建稳健的分布式架构提供了方法论支持。文章还探讨了单机性能与集群规模的效益关系,并对比了拜占庭故障和崩溃故障的处理策略。

2025-09-05 09:27:05 983

原创 从JSON到Protobuf,深入序列化方案的选型与原理

本文对比了JSON和Protobuf两种序列化方式的特点与性能。JSON凭借可读性和跨平台优势广泛应用于Web开发,但其文本格式导致传输效率较低,占用空间大。Protobuf作为二进制序列化方案,采用Varint变长编码和tag-type结构,显著提升传输效率,数据体积更小、解析更快,但可读性较差。文章通过Go代码示例展示了两种方式的具体实现和二进制流差异,指出序列化性能直接影响RPC通信效率。最后强调技术选型需权衡标准化与优化,在公网推荐gRPC+Protobuf方案,内网可考虑自研协议进行深度优化。

2025-09-04 11:23:02 1130

原创 gRPC不是银弹:为内网极致性能,如何设计自己的RPC协议?

摘要: 本文探讨了自研RPC协议在内网环境中的性能优势,对比了gRPC协议的局限性。针对TCP拆包/粘包问题,提出长度前缀等解决方案,并设计了一种支持扩展的RPC协议框架。协议包含19字节固定帧头(含魔数、消息类型、长度等字段)及可变长协议体(分包头和包体),通过序列化ID和压缩算法实现高效传输。文中以Protobuf定义包头结构,并给出Java Netty的编解码实现示例,强调协议灵活性、轻量级和性能优化的核心优势。(150字) 关键词: RPC协议、TCP拆包、帧头设计、性能优化、Netty编解码

2025-09-03 10:59:34 1458

原创 站在巨人的肩膀上:gRPC通过HTTP/2构建云原生时代的通信标准

摘要:gRPC作为云原生通信标准,基于HTTP/2实现高效RPC通信。 其支持四种服务方法类型:Unary(单请求单响应)、Server Streaming(单请求多响应)、Client Streaming(多请求单响应)和Bidirectional(双向流)。请求/响应结构包含Headers、Length-Prefixed Message和Trailers,通过.proto文件定义服务接口并自动生成多语言客户端/服务端代码。gRPC实现了跨语言远程调用,使开发者能像调用本地方法一样进行分布式通信。

2025-09-01 13:25:42 1109 1

原创 从HPACK到多路复用,揭秘HTTP/2如何终结网络拥堵

HTTP/2通过HPACK压缩和多路复用技术优化性能。HPACK采用静态表(61个预定义字段)、动态表(会话中更新)和霍夫曼编码压缩头部,减少冗余传输。多路复用允许单TCP连接承载多个双向流,通过流标识符实现并行传输,避免HTTP/1的队头阻塞问题。流可设置优先级,支持服务器主动推送(偶数为服务端流)。这两种机制显著提升了HTTP/2的传输效率和并发能力。

2025-08-29 00:51:21 1225

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除