随笔分类 -  高并发系统设计

流量洪峰下的交通指挥家:详解负载均衡与限流实战
摘要:负载均衡:聪明的交通指挥家 如果说水平扩容是为系统增加了更多的“工作车道”,那么负载均衡就是站在车道入口处的交通指挥家。它的存在,是为了回答一个根本性问题:当成千上万的请求同时涌来时,如何将它们高效、公平且智能地引导至后端的服务集群,从而避免任何一条“车道”因拥堵而瘫痪? 负载均衡的本质,是将单一的 阅读全文

posted @ 2025-12-25 20:24 poemyang 阅读(176) 评论(0) 推荐(0)

流量洪峰冲不垮的秘密:揭秘系统过载保护的核心防线
摘要:系统流量如潮汐般涨落,瞬时的洪峰可能将最坚固的系统冲垮。如何确保核心服务在极限压力下依然稳如磐石?答案在于构建一套分层协同、动态弹性的过载保护机制。这并非单一技术的堆砌,而是一门融汇了预判、隔离、调度与自愈的系统工程艺术。 本文将深入剖析这套多层防护体系的构建之道:从最外层的流量调度(负载均衡),到 阅读全文

posted @ 2025-12-23 21:16 poemyang 阅读(179) 评论(0) 推荐(0)

像Git一样管理数据:深入解析数据库并发控制MVCC的实现
摘要:MVCC 多版本并发控制(Multi-version Concurrency Control, MVCC)是一种通过维护数据多个版本来实现并发控制的技术。其基本思想是为每次事务生成一个新版本的数据,在读数据时选择不同版本的数据即可以实现对事务结果的完整性读取。在使用MVCC 时,每个事务都是基于一个 阅读全文

posted @ 2025-12-08 22:00 poemyang 阅读(232) 评论(0) 推荐(0)

守护“真相之源”:深入理解数据库的预写日志(WAL)与检查点技术
摘要:如果说缓存和消息中间件处理的是流量的“流动”问题,那么数据库系统要解决的,则是数据的“存在”问题——即数据的最终正确性与持久性。它是整个系统的“真相之源”(Source of Truth)。 日志技术 在考虑数据库系统的持久性时,关键的考虑因素是如何在数据库中实现数据的持久化。例如,在关系型数据库中 阅读全文

posted @ 2025-12-03 16:34 poemyang 阅读(121) 评论(1) 推荐(1)

从硬盘I/O到网络传输:Kafka与RocketMQ读写模型及零拷贝技术深度对比
摘要:消息写读 在Kafka的数据存储架构中,一个主题由一个或多个分区组成。在物理存储上,每个主题-分区都对应着硬盘上的一个独立目录,而消息数据则以日志段文件(Log Segment)的形式存储在这些目录中。随着数据的不断写入,当一个日志段文件达到预设的大小(例如1GB)或时间阈值时,它会被关闭并变为只读 阅读全文

posted @ 2025-12-02 21:46 poemyang 阅读(256) 评论(1) 推荐(2)

从同步耦合到异步解耦:消息中间件如何重塑系统间的通信范式?
摘要:当成百上千的服务需要相互协作时,它们之间的通信模式变得至关重要。如果服务间采用紧密耦合的同步调用,一个服务的延迟或故障,就可能引发连锁反应,导致系统性的“雪崩”。 消息中间件正是为了打破这种刚性依赖而生。它在服务之间建立了一个异步的通信渠道,通常是一个消息队列。生产者服务只需将任务(即“消息”)投递 阅读全文

posted @ 2025-11-11 23:01 poemyang 阅读(214) 评论(0) 推荐(0)

从局部性原理到一致性模型:深入剖析缓存设计的核心权衡
摘要:缓存:高速存取数据的前哨站 缓存的根本思想,源于一个在计算机科学中被反复验证的黄金法则——局部性原理(Principle of Locality)。该原理包含两个层面: 1)时间局部性(Temporal Locality):如果一个数据项被访问,那么在不久的将来,它极有可能被再次访问。例如,一篇热门 阅读全文

posted @ 2025-11-10 15:14 poemyang 阅读(244) 评论(0) 推荐(1)

万丈高楼平地起:从“输入-处理-输出”第一性原理,看懂系统架构的演进
摘要:系统设计的复杂性,往往源于其需要应对的外部压力。对于互联网应用而言,用户规模的增长和流量的瞬时波动,是其必须面对的常态。一个未经深思熟虑的系统,在流量洪峰面前可能会变得迟缓甚至不可用,直接影响用户体验与业务目标。 因此,构建一个能够从容应对压力的系统架构,便成为一项核心的工程命题。 本文将探讨一种行 阅读全文

posted @ 2025-11-07 16:31 poemyang 阅读(199) 评论(0) 推荐(0)

千亿消息“过眼云烟”?Kafka把硬盘当内存用的性能魔法,全靠这一手!
摘要:Kafka 消息队列 Apache Kafka是一个开源的分布式消息队列,由LinkedIn公司开发并于2011年贡献给Apache软件基金会。Kafka被设计用来处理千亿量级的实时数据,被广泛应用于互联网大规模数据处理平台中。 Kafka强大的数据吞吐量,其中最重要部分在于它的消息日志格式的设计, 阅读全文

posted @ 2025-08-22 11:50 poemyang 阅读(630) 评论(0) 推荐(2)

Facebook内部都在用的存储引擎,LSM凭什么能硬扛亿级写入流量?
摘要:RocksDB LSM树 RocksDB是Meta (Facebook) 开源的高性能持久化键值存储库,源于Google的LevelDB,并针对SSD和服务器工作负载进行了深度优化。它广泛应用于需要处理海量数据(亿级甚至更高)并要求高写入吞吐的场景。 RocksDB 以 kv 对集合的形式存储数据, 阅读全文

posted @ 2025-08-21 11:46 poemyang 阅读(367) 评论(0) 推荐(0)

十年大厂员工终明白:MySQL性能优化的尽头,是对B+树的极致理解
摘要:存储引擎 存储引擎是数据库管理系统(DBMS)或键值存储系统的核心组件,它定义了数据在持久化存储介质上如何组织、存储、检索和管理。不同的存储引擎针对特定负载(如读密集型、写密集型、混合型)和数据模型(如关系型、键值型、文档型)进行优化。 目前常见的存储引擎使用的存储数据结构有如下几种。 1)哈希表( 阅读全文

posted @ 2025-08-18 00:21 poemyang 阅读(1904) 评论(1) 推荐(2)

硬盘性能提升100倍的秘密:看懂顺序I/O的魔力
摘要:I/O缓存 局部性原理 局部性原理(Principle of Locality)指在程序执行过程中,倾向于访问某些局部特定的数据或指令,而不是随机地访问整个内存空间。这是缓存技术得以有效的根本原因。 1)时间局部性(Temporal Locality):如果一个数据项被访问,那么在不久的将来它很可能 阅读全文

posted @ 2025-08-14 23:02 poemyang 阅读(768) 评论(0) 推荐(2)

从纳秒到毫秒的“时空之旅”:CPU是如何看待内存与硬盘的?
摘要:在数据暴涨时代,如何高效存储和管理海量数据已成为应用系统的核心挑战。这不仅关乎读写性能,更涉及并发场景下性能与持久化之间的平衡。要应对这一挑战,既需要理解不同存储介质的物理特性与性能边界,也需通过数据结构、存储模型与操作系统机制的协同设计,达成技术上的最优平衡。 本文将从计算机系统的分层存储体系这一 阅读全文

posted @ 2025-08-12 08:19 poemyang 阅读(602) 评论(0) 推荐(2)

导航