来源书籍
高可用架构(第1卷)
系统架构类
类别清单覆盖
7/7
全书概览
高可用架构(第1卷)
Skill 版本:v7
类别:系统架构类
四象限结论:工程实践(高信息浓度 + 低稳定性)
理由:全书由”高可用架构”社区(msup/GitChat体系)历次线上分享整理而成,本质是一部大型真实生产系统案例合集,共7章、55个独立案例小节,覆盖Twitter分布式日志、腾讯电商防刷、微信同类多终端同步协议、京东大促压测、微博异地多活、容器化迁移、MySQL/PostgreSQL/MongoDB HA、DDoS防护等主题。信息浓度很高:抽样精读的1.1节(Twitter基于Apache BookKeeper构建DistributedLog)不是操作手册,而是完整讲清楚”为什么最终一致性系统上做CAS会产生冲突→为什么用日志序列化能解决→为什么选择BookKeeper而不是自建→BookKeeper如何用LAC指针和fencing机制替代选主协议→DistributedLog如何在此基础上封装出无状态的Write/Read Proxy分层架构”这一整条设计推理链,每一步都在回答”为什么这样做”而非”怎么点鼠标”。稳定性总体偏低:书中大量内容强绑定2015-2017年前后的具体产品版本、公司自研系统和当时的技术生态(如Docker早期实践、Elasticsearch 2.x、MySQL 5.7新特性、MongoDB WiredTiger引擎首次发布、当当Elastic-Job等特定开源项目版本),部分产品和公司本身也可能已经历重大变化;但每个案例背后的设计取舍逻辑(如何用日志解决一致性冲突、如何用无状态代理层实现弹性伸缩、如何权衡持久化与吞吐量)具有较高的可迁移价值,即使脱离具体版本依然能启发今天的架构决策,因此整体判定为工程实践而非速查手册。
说明(2026-09-03):本书此前已生成过一版卡片(notes/高可用架构(第1卷)/_overview.md旧版),经核查该版本从未声明”Skill 版本:v7”,章节表格式(精读/略读列写完整句子说明而非固定枚举值)明显早于当前card-template.md规范,判定为过时目录,已按v7重跑规则用git rm -rq整体清空重建;本次评级结论、章节筛选、卡片内容均从零重新生成。经核对EPUB的content.opf(370个itemref)与toc.ncx(370个navPoint,”第1章”仅出现一次,”第2章”至”第7章”依次各出现一次,无重复起始点),确认本书不是被错误打包的多本书合集,是单本内容详实、由55个独立案例小节组成的社区分享文集。
章节筛选
全书共7章、55个独立案例小节,每个小节相当于一场独立的技术分享,彼此话题独立、但都围绕”高可用架构”这一主题。由于每章包含多个独立案例、单章篇幅巨大(如第1章含9个案例,第6章含12个案例),本书章节进度表按”案例小节”粒度而非整章粒度追踪,以便断点续跑。抽样精读1.1节确认各案例小节均围绕架构设计的实质性推理展开(为什么这样设计、遇到什么问题、如何权衡取舍),按”硬性优先”规则,55个小节全部标记精读,无略读小节。
| 章节号 | 章节标题 | 精读/略读 | 状态(pending/done) | 卡片数 |
|---|---|---|---|---|
| 1.1 | Twitter高性能分布式日志系统架构解析 | 精读 | done | 5 |
| 1.2 | 腾讯基于用户画像大数据的电商防刷架构 | 精读 | done | 5 |
| 1.3 | 如何设计类似微信的多终端数据同步协议:Grouk实践分享 | 精读 | done | 4 |
| 1.4 | 如何实现支持数亿用户的长连消息系统:Golang高并发案例 | 精读 | done | 7 |
| 1.5 | 雪球在股市风暴下的高可用架构改造分享 | 精读 | done | 8 |
| 1.6 | 亿级短视频社交美拍架构实战 | 精读 | done | 6 |
| 1.7 | 微博”异地多活”部署经验谈 | 精读 | done | 7 |
| 1.8 | 来自Google的高可用架构理念与实践 | 精读 | done | 8 |
| 1.9 | 深入理解同步/异步与阻塞/非阻塞区别 | 精读 | done | 3 |
| 2.1 | Codis作者细说分布式Redis架构设计 | 精读 | done | 7 |
| 2.2 | 给你介绍一个不一样的硅谷 | 精读 | done | 3 |
| 2.3 | 解耦的艺术——大型互联网业务系统的插件化改造 | 精读 | done | 7 |
| 2.4 | 从零开始搭建高可用IM系统 | 精读 | done | 7 |
| 2.5 | 360分布式存储系统Bada的架构设计和应用 | 精读 | done | 8 |
| 2.6 | 新一代分布式任务调度框架:当当Elastic-Job开源项目的10项特性 | 精读 | done | 7 |
| 2.7 | 互联网DSP广告系统架构及关键技术解析 | 精读 | done | 9 |
| 2.8 | 亿级规模的Elasticsearch优化实战 | 精读 | done | 6 |
| 2.9 | 微博分布式存储考试题:案例讲解及作业精选 | 精读 | done | 6 |
| 2.10 | 架构师需要了解的Paxos原理、历程及实战 | 精读 | done | 9 |
| 2.11 | OpenResty的现在和未来 | 精读 | done | 8 |
| 3.1 | 亿级商品详情页架构演进技术解密 | 精读 | done | 10 |
| 3.2 | 大促系统全流量压测及稳定性保证——京东交易架构 | 精读 | done | 9 |
| 3.3 | 秒杀系统架构解密与防刷设计 | 精读 | done | 5 |
| 3.4 | Lambda架构与推荐在电商网站实践 | 精读 | done | 7 |
| 3.5 | 某公司线上真实流量压测工具构建 | 精读 | done | 5 |
| 4.1 | 微博基于Docker容器的混合云迁移实战 | 精读 | done | 8 |
| 4.2 | 互联网金融创业公司Docker实践 | 精读 | done | 8 |
| 4.3 | 使用开源Calico构建Docker多租户网络 | 精读 | done | 5 |
| 4.4 | 解析Docker在芒果TV的实践之路 | 精读 | done | 8 |
| 4.5 | 微博基于Docker的混合云平台设计与实践 | 精读 | done | 6 |
| 5.1 | 360如何用QConf搞定两万台以上服务器的配置管理 | 精读 | done | 7 |
| 5.2 | 深度剖析开源分布式监控CAT | 精读 | done | 9 |
| 5.3 | 单表60亿记录等大数据场景的MySQL优化和运维之道 | 精读 | done | 10 |
| 5.4 | 微博在大规模、高负载系统问题排查方法 | 精读 | done | 6 |
| 5.5 | 系统运维之为什么每个团队存在大量烂代码 | 精读 | done | 6 |
| 5.6 | 系统运维之评价代码优劣的方法 | 精读 | done | 9 |
| 5.7 | 系统运维之如何应对烂代码 | 精读 | done | 11 |
| 6.1 | 某音乐公司的大数据实践 | 精读 | done | 9 |
| 6.2 | 实时计算在点评 | 精读 | done | 9 |
| 6.3 | 百姓网Elasticsearch2.x升级之路 | 精读 | done | 7 |
| 6.4 | Hadoop、HBase年度回顾 | 精读 | done | 5 |
| 6.5 | 解密Apache HAWQ——功能强大的SQL-on-Hadoop引擎 | 精读 | done | 6 |
| 6.6 | PostgresSQL HA高可用架构实战 | 精读 | done | 5 |
| 6.7 | 从NoSQL历史看未来 | 精读 | done | 7 |
| 6.8 | MySQL5.7新特性大全和未来展望 | 精读 | done | 6 |
| 6.9 | 大数据盘点之Spark篇 | 精读 | done | 6 |
| 6.10 | 从Postgres95到PostgreSQL9.5:新版亮眼特性 | 精读 | done | 7 |
| 6.11 | MongoDB2015回顾:全新里程碑式的WiredTiger存储引擎 | 精读 | done | 7 |
| 6.12 | 基于Xapian的垂直搜索引擎的构建分析 | 精读 | done | 8 |
| 7.1 | 揭秘DDoS防护——腾讯云大禹系统 | 精读 | done | 5 |
| 7.2 | App域名劫持之DNS高可用——开源版HttpDNS方案详解 | 精读 | done | 6 |
| 7.3 | CDN对流媒体和应用分发的支持及优化 | 精读 | done | 9 |
| 7.4 | HTTPS环境使用第三方CDN的证书难题与最佳实践 | 精读 | done | 2 |
| 7.5 | 互联网主要安全威胁分析及应对方案 | 精读 | done | 9 |
实践卡进度
| 序号 | 实践标题 | 实践方式 | 状态(pending/done) | 关联章节 | 产出 |
|---|---|---|---|---|---|
| 1 | 核验HPKP方案是否仍然可用 | 证据验证 | done | 7.5 | HPKP已于2017-2018年被主流浏览器废弃,替换为Certificate Transparency,核验结论见idea-001 |
| 2 | 横向比较CSRF Token与SameSite Cookie两种防御机制 | 横向学习 | done | 7.5 | 两种机制对比表+组合防御推荐结论,见idea-002 |
| 3 | pg_rewind源码深读:验证WAL增量识别机制 | 实现深读 | done | 6.10 | WAL扫描确定变更块/全量与增量分界的详细阅读记录,见idea-003 |
| 4 | Nginx线程池文档深读:验证阻塞IO隔离机制的当前配置方式 | 实现深读 | done | 7.3 | thread_pool+aio最小配置说明与当前有效性核验,见idea-004 |
待关联术语
| 术语名 | 出现章节 | 一句话语境 |
|---|---|---|
| Speculative Read与Long Poll Read的具体读取机制、Ensemble Size/Write Quorum Size/ACK Quorum Size吞吐量调优的具体换算公式、跨数据中心复制的同步/异步权衡细节 | 1.1 | 属于Q&A环节和读操作实现细节,核心一致性模型已在ch01-004中概括,具体读优化技巧和吞吐量调优数字未展开生卡 |
| 1.4.5节消息系统的架构迭代与集群拆分测试经验、GO语言并发压测工具与可视化统计报表细节 | 1.4 | 内容偏薄、多为一般性运维经验陈述,未给出具体可迁移的架构决策依据,未展开生卡 |
| 心跳/超时具体时长参数(2G/3G场景5分钟、WiFi场景5-8分钟)、消息持久化先存Redis后落MySQL做故障恢复的具体实现、push SDK单连接多App复用的流量归属与版本兼容问题、Keeper自研配置调度组件与raft的选型考虑 | 1.4 | Q&A环节的具体实现参数和边界case讨论,核心设计原则(推送到达率四因素、冷备一致性方案)已在ch01-018、ch01-021中概括,逐条参数细节未展开生卡 |
| 雪球总体架构的具体分层细节(Node.js模板引擎/finagle RPC框架定制/服务层三大分类/异步任务流式批量式拆分/基础设施组件清单)、DB瓶颈优化案例(注册模块昵称查重cache+异步改造)、前置模块Hazelcast HA方案的具体实现、App端端到端服务质量监控的数据传输格式设计 | 1.5 | 属于总体架构介绍和具体优化案例的实现细节,核心可迁移方法论(预建索引/分级批量/幂等重试/一致性哈希绑定session)已在ch01-022、ch01-024、ch01-028、ch01-029中概括,逐项实现细节未展开生卡 |
| 短视频市场爆发的宏观背景因素(带宽/硬件/表达力/产品门槛四点)、美拍发展历程具体数据(用户量/播放量等)、1.6.5节后续发展方向(H.265编码演进路径/P2P+CDN带宽优化/视频美化算法云端化) | 1.6 | 市场背景与发展历程数据属于公司介绍性质,后续发展方向属于前瞻性构想、非已落地的架构决策,核心已落地的架构方法论已在ch01-030至ch01-035中概括,未展开生卡 |
| 微博HBase异地部署的规划思路(尚在规划阶段)、Web层近距离部署放弃专线改公网寻路的具体算法、Docker动态扩容的具体机房调度实现细节 | 1.7 | 属于尚在规划或较具体的实现层面内容,核心可迁移方法论(技术选型演进/五大挑战/延时队列纠正脏数据/单元化对比/容量冗余节奏/选型六维度/微服务收敛复杂度)已在ch01-036至ch01-042中概括,未展开生卡 |
| Google/Coding.net Q&A中的具体实现细节:YouTube CDN内存爆掉的问题流量区分案例、搜索系统按cost值均衡热点词请求的具体机制、百万台服务器agent自动化管理与故障自愈的实现细节、query-of-death的业务Proxy拦截与断点日志重启检测两种具体实现手段 | 1.8 | 核心流控理念(Isolation/Quarantine/Query-of-death三场景)已在ch01-046中概括,Q&A环节的具体案例和实现手段属于同一理念的补充佐证,未单独展开生卡 |
| Codis开源项目的具体部署命令、配置文件字段、Dashboard页面操作步骤、Q&A中关于具体版本号/GitHub issue链接的问答细节 | 2.1 | 属于操作手册型细节和一手信息来源的具体查证过程,核心架构设计取舍(Proxy架构选择/一致性优先/hashtag路由/RebornDB演进方向/生产运维经验/分布式数据库现状)已在ch02-001至ch02-007中概括,具体操作步骤未展开生卡 |
| Uber/Coursera/Airbnb办公室装修与前台照片描述、Airbnb logo设计过程与历史演变、硅谷公司具体估值与融资细节、Q&A中关于国内公司出海、天使投资人偏好、加班文化等未经查证的道听途说式问答 | 2.2 | 本节为会议分享的游记式内容,作者自述”都是道听途说,没有和这些公司的CEO做过考证”,信息浓度和可验证性明显低于全书其余技术架构章节,仅办公室文化/协作机制中真正可迁移的三点已在ch02-008至ch02-010中概括,其余感官印象和未经证实的传闻未展开生卡 |
| 报表数据落地作为唯一冗余数据的取舍、数据不一致时提供的通知订正”后门”机制、DSL控件配置的具体XML语法示例、U系统上线后的三点效果总结(开发高效/体验统一/结构清晰) | 2.3 | 属于U系统实现的边缘细节和落地效果陈述,核心可迁移架构方法论(插件化双重矛盾/统一系统陷阱/流程集中到引擎/自研规范决策/沙盒与源码提交/交互最小自由/容错四件套)已在ch02-011至ch02-017中概括,未单独展开生卡 |
| IM典型业务场景九步校验流程的具体步骤清单、Anti-Spam敏感词/频率/广告过滤的实现细节、TCP/UDP传输层选择与epoll/kqueue单机连接数、腾讯用UDP实现TCP式超时重传的具体机制、Q&A中的协议实现细节(BOSH与消息连接的区别/富文本消息处理/时序保证的uid+msgid机制) | 2.4 | 属于具体业务流程清单和Q&A实现细节,核心可迁移协议设计与推送机制方法论(IM四大特性/SMC定理/推拉分层/协议范式对比/包头包体设计/密钥管理权衡/长轮询机制)已在ch02-018至ch02-024中概括,未单独展开生卡 |
| Bada主要应用场景的具体业务数据(云盘千亿级/LBS十亿级请求量)、Network Proxy/Meta Info/DB Engine模块的实现细节、两次映射分片策略(key→PartitionId→Node)的具体哈希实现、请求流程的两种图示细节、多数据结构引擎支持Hash/List/Set/Zset的实现、LevelDB与RocksDB性能对比测试数据、Bada与MongoDB/Cassandra/Redis的定位对比细节 | 2.5 | 属于具体业务规模数据、模块实现细节和产品对比表,核心可迁移架构决策方法论(对等结构选择/EC编码取舍/主从副本CAP权衡/分片级主从/Mnesia替代ZooKeeper/多机房同步方案/冲突解决三方案/文件级迁移效率)已在ch02-025至ch02-032中概括,未单独展开生卡 |
| 当当之前使用的4种作业系统各自缺陷(Quartz/TBSchedule/Crontab/Perl)、ddframe四阶段演进规划与dd-前缀模块清单、ZooKeeper四类ZNode(config/servers/execution/leader)的具体职责、多作业模式(简单/高吞吐/顺序性)的具体实现细节、错过任务重执行等其他功能点列表、未来展望的监控体系规划、Sharding-JDBC的实现方式对比 | 2.6 | 属于历史系统盘点、组件清单和产品路线图等具体细节,核心可迁移方法论(定时任务与消息中间件四维判断/任务分片与重分片机制/幂等性失效转移的性能取舍/分片与业务解耦映射/积木大厦类开源复用/质量优先级排序/无中心化时序兜底)已在ch02-033至ch02-039中概括,未单独展开生卡 |
| DSP行业概念定义(DSP/RTB/程序化购买)与供需产业链角色清单、多机房部署的具体节点分布(杭州/北京)与Redis/Kafka选型细节、DMP大数据架构技术栈清单(Hadoop/Spark/Storm/HBase/Elasticsearch/MLlib)、CTR预估的点排序/对排序/列排序具体算法、用户画像”用户ID:标签:权重”的具体数据格式、cookie mapping在线/离线三种触发场景的实现细节 | 2.7 | 属于行业概念定义、技术栈清单和具体实现细节,核心可迁移架构方法论(时延约束驱动架构/程序化购买本质/适配器层设计/热插拔算法架构/RTB无状态设计/受众定向三类框架/上下文定向缓存架构/反作弊利益链条与蜜罐/CPS作弊归因劫持)已在ch02-040至ch02-048中概括,未单独展开生卡 |
| Elasticsearch具体调优参数清单(index.translog.flush_threshold_ops/threadpool.index.queue_size/indices.memory.index_buffer_size等)、生产环境JVM CMS参数配置样例、线程池fixed与cached的版本相关差异、集群rebalance相关配置项(cluster_concurrent_rebalance/node_initial_primaries_recoveries)、Kopf插件工具介绍、Reindex与Solr对比等版本绑定极强的问答细节 | 2.8 | 属于Elasticsearch特定版本的具体调优参数和工具推荐,时效性和版本绑定性很强,核心可迁移架构方法论(瓶颈优先诊断/routing王道/分索引优于加Shard/高成本字段剥离旁路/JVM 32G现象/主动段合并防碎片化)已在ch02-049至ch02-054中概括,未单独展开生卡 |
| Zab协议与Paxos/Raft的4点具体区别(Epoch+Count vs Term+Index/Follower投票前置条件/心跳方向/日志同步方向)、Paxos跨全球同步的可行性讨论(Spanner/Aurora案例)、OB团队Paxos实现的Monkey Tests与虚拟机测试方案、LogID防重复的具体保证机制、Master/Slave场景下Paxos日志回放的具体流程 | 2.10 | 属于协议间横向对比细节和具体工程测试方案,核心可迁移原理(强同步异步取舍/选主机制演进/Paxos两阶段协议/最大Commit原则/Multi-Paxos选主本质/日志同步简化/幽灵复现/时钟驱动选主/Raft取舍)已在ch02-061至ch02-069中概括,未单独展开生卡 |
| OpenResty诞生背景与金砖国家开发者渊源、OpenResty三大应用场景细分(HTTPProxy/APIServer/WebApplication)的具体案例清单、Lua语言自身特性坑点(下标从1开始/默认全局变量/字符串正则规则差异)、OpenResty社区建设与软件基金会筹备细节、ylang调试小语言的规划、OpenRestyEdge的具体产品形态、Q&A中的具体API使用问答(balancer_by_lua/CDN应用场景) | 2.11 | 属于产品背景、场景清单、语言细节坑点和社区建设进展,核心可迁移方法论(同步代码写非阻塞IO降低门槛/技术选型先勾勒理想模型/企业与互联网产品引入新技术的不同策略/软指标评估/异常模拟测试/火焰图无感知调试/表面相似技术的替代关系判断/编译型DSL演进路线)已在ch02-070至ch02-077中概括,未单独展开生卡 |
| 京东详情页模板体系的具体分类清单(通用版/全球购/闪购/易车等)、数据维度化的完整字段清单(商品基本信息/商品介绍/非商品维度信息/异步加载信息)、动态化/弹性化/多机房多活/多种压测方案的具体实现细节(Docker镜像/一主三从/TCPcopy线上压测)、Jimdb数据同步与主从切换的具体运维细节、模板元数据存储HTML的具体性能数字(53ms降到32ms)、微信接口调用量暴增和Nginx Proxy Cache内存占用98%等具体故障的处理细节、Q&A中关于内网服务协议选型/jimdb特性/价格库存缓存策略的具体问答 | 3.1 | 属于具体实现清单、运维细节和故障排查记录,核心可迁移架构方法论(架构演进驱动力/数据闭环四步/Worker多队列设计/并发预取优化范式/多级缓存/降级开关三层设计/SSD选型陷阱/KV引擎压测方法论/恶意刷量应对/超时设置教训)已在ch03-001至ch03-010中概括,未单独展开生卡 |
| 京东交易系统三阶段/三层结构的具体业务流程图细节、2012-2015年大促订单量历年数据、购物车/结算页/订单页16:4:1的具体访问比例数字、数据压缩具体压缩比数字、订单中心异构的4个子系统具体划分(列表服务/订单详情/状态服务/跟踪服务)、商品页异构的ABC三包具体划分、价格服务通过存储分流的具体机制、方法级TP99监控的具体实现、Q&A中关于库存Redis防重与MySQL压测70万写入量的具体数字 | 3.2 | 属于具体业务流程图、历年数据和实现细节,核心可迁移方法论(全链路压测四手段/压测数据隔离规范/漏斗状多级缓存/异步双写覆盖机制/超热数据定长队列/异步两层含义/接单异构先写后拆/秒杀沙漏结构/容灾降级分层设计)已在ch03-011至ch03-019中概括,未单独展开生卡 |
| 限时抢购与限量抢购的具体case分类、抢购需求分析的具体业务流程图(商品角度/用户角度时序图)、运营配库的具体时序细节、验证码防刷的图灵测试原理讨论、对账维度是否包含金额与库存的Q&A细节 | 3.3 | 属于具体业务流程图和边缘Q&A讨论,核心可迁移方法论(自建子库隔离压力/单用户一致性取舍/受限队列控制库存查询/Transaction ID对账机制/防刷边界认知)已在ch03-020至ch03-024中概括,未单独展开生卡 |
| Netflix推荐架构的具体组件(Hive/Pig/Hermes/User Event queue)、1号店6大推荐引擎的其余5类(用户意图/用户画像/千人千面/情境推荐/反向推荐)具体定义、HBase维护经验(热点均衡靠request量而非key分布/为HBase修复Bug做准备)、Storm在高TPS消息堆积与资源隔离问题的具体解决方案(自研jumper推送订单行为)、Q&A中Kafka集群配置与日志量等具体运维数字(1天2T数据/CLOSE_WAIT问题) | 3.4 | 属于具体系统组件清单和运维实现细节,核心可迁移方法论(Lambda两个理论假设/可重计算容错的代价/主题推荐自然演化路径/HBase读写分离隔离/Kappa架构的回应/一劳永逸倾向的反思/冷启动两策略)已在ch03-025至ch03-031中概括,未单独展开生卡 |
| 压测项目技术栈具体清单(Ratpack+InfluxDB+ActiveJDBC+AngularJS+Groovy)、项目接入服务数与打压次数等具体运营数字、TCPCopy对比讨论、压测策略配置错误处理与线上报警机制、Falcon和Octo收集依赖服务指标的具体运维细节 | 3.5 | 属于具体技术栈清单和运维细节,核心可迁移方法论(init/run/destroy三段式抽象/VCR异步录制真实流量/时序数据库选型/分布式架构迭代驱动力/自建工具决策前的系统性评估)已在ch03-032至ch03-036中概括,未单独展开生卡 |
| Consul三种读一致性模式细节(default/consistent/stale)与Consul vs etcd选型对比(DNS/ACL支持)、Consul监控指标细节与Server节点通信坑、JPool业务调度系统的扩缩容实现细节、Docker Registry基于Ceph的跨机房加速架构、混合云四级监控体系具体指标清单(系统级/业务级/资源级/专线网络)、Q&A中PHP等其他语言支持进度与容器跨主机Host网络细节 | 4.1 | 属于具体协议对比细节、监控指标清单和运维实现细节,核心可迁移方法论(混合云五维决策框架/按数据敏感度分层上云/Docker Machine选型踩坑/Daemon Label重启硬伤/虚机镜像预构建/网络方案三级权衡/绕开reload的架构思路/容器调度三级分层与两步算法)已在ch04-001至ch04-008中概括,未单独展开生卡 |
| 雪球5类操作系统环境的具体业务分工(物理机跑Nginx/Redis、KVM对接券商Windows需求等)、CPU period+quota动态绝对配额的具体参数、静态MAC地址计算算法、Docker原生不支持init启动sshd的entrypoint变通方案实现细节、公有云上Docker网络互通的路由方案与隧道方案技术细节、Rolling平台与旧Capistrano发布工具的对比表、Q&A中雪球容器规模与业务数量的具体运营数字(1000个容器/40个业务) | 4.2 | 属于具体业务分工、参数配置和实现细节,核心可迁移方法论(动静分离镜像设计/禁用swap快速失败哲学/去NAT网络的取舍/混合云四阶段演进模型/硬件采购周期与业务弹性需求的错配判断/日志监控脱离容器本体/Rolling平台的资源认知质变/技术选型看生态成熟度)已在ch04-009至ch04-016中概括,未单独展开生卡 |
| Calico环境准备与命令行操作的具体步骤(Etcd集群配置/控制脚本下载/CALICO_IP等环境变量)、Iptables Chain跳转的具体规则实现细节(felix-FORWARD/felix-p-db-i等)、Calico早期Bug清单(Docker inspect不显示IP/BGP客户端重启路由消失)、Q&A中单机10万条路由压测数字与Calico和Kubernetes整合的具体方案 | 4.3 | 属于具体操作步骤和实现细节,核心可迁移方法论(PaaS网络三需求与主流方案痛点/BGP路由广播实现无NAT无隧道通信/Profile+Tag灵活访问控制/纯路由方案性能优势的实测验证/网络初始化滞后于容器启动的坑)已在ch04-017至ch04-021中概括,未单独展开生卡 |
| 豆瓣App Engine时期Runtime隔离踩坑的具体细节(werkzeug版本冲突/CPython黑魔法尝试)、Eru核心组件Core/Agent架构细节、App.yaml统一Dockerfile生成机制、Redis Cluster Dockerize的具体实例数据(400 instance/10集群)、InfluxDB版本兼容性踩坑细节、服务发现基于Dnscache和Skydns的内网DNS体系、Q&A中AWS选型原因/资源利用率提升的具体估算讨论 | 4.4 | 属于历史背景、组件实现细节和具体运营数据,核心可迁移方法论(第一代PaaS完整闭环的落地教训/从PaaS转向编排调度平台/网络方案Tunnel与Route取舍/存储引擎实测驱动选型/CPU独占核碎片核弹性模型/按峰值预留的资源浪费案例/新技术落地三条经验/监控采集读操作暗藏写副作用踩坑)已在ch04-022至ch04-029中概括,未单独展开生卡 |
| 微博业务规模具体数字(8亿注册用户/日活1亿/600亿次API调用)、春晚红包飞的具体业务模型图、DCP四层架构细节(主机层/调度层/编排层)、调度工具组合Docker+Swarm+Mesos+Dispatch的具体职责划分、物理主机生命周期状态流转图、Nginx-upsync-module的具体性能数字(此模块已在ch04-007详细展开,本节仅重复提及)、镜像三层架构与Dockerignore优化细节、Q&A中阿里云节点规模的具体运营数字 | 4.5 | 属于具体业务规模数据、组件架构细节和已在ch04-007展开过的重复内容,核心可迁移方法论(银行储蓄机制类比资源共享池/混合云两种部署方案取舍/设备申请分层调度存量资源/Buffer池配额管理边界/反安装保证设备流转干净/禁用latest标签的教训)已在ch04-030至ch04-035中概括,未单独展开生卡 |
| QConf具体部署命令与管理界面操作细节、多语言客户端接口清单(C/PHP/Java/Python/GO/Lua/Shell)、数据序列化协议图示、服务发现功能的Monitor角色实现细节、360内部使用规模具体数字(51机房/2万台客户端/4年稳定运行)、Q&A中ZooKeeper集群客户端规模与Znode性能边界的具体数字(两三万台机器/两万Watcher/几十万Path级别) | 5.1 | 属于具体操作命令、接口清单和运营规模数字,核心可迁移方法论(配置代码分离的根本动机/数据特征驱动架构选型/无锁读写的单点写加读验证/Agent多线程队列解耦设计/多层异常兜底组合/三种配置管理产品复杂度对比/数据源优先级解决多副本不同步)已在ch05-001至ch05-007中概括,未单独展开生卡 |
| CAT背景介绍中大众点评从.NET迁移Java的历史细节与eBay CAL系统渊源、CAT三模块(client/consumer/home)多机房部署路由细节、API设计中Transaction/Event/Heartbeat/Metric四种核心监控对象的具体定义、性能分析报表与故障发现类报表的具体图表示例、CAT自定义序列化协议与Netty通信细节、总结感悟中MVP版本/单机开发环境/上线推动的具体实践叙述、项目6年发展历程的具体规模数字(3千应用/2万服务端节点) | 5.2 | 属于历史背景、部署架构细节和团队实践叙述,核心可迁移方法论(不保证可靠的核心权衡/ThreadLocal匹配线程池模型/MappedByteBuffer异步化教训/框架需防范业务方滥用/固定维度建模加单线程无锁/消息ID四段式设计/位运算存储索引/日志只读性简化实时报表/数据开放为API应对无穷需求)已在ch05-008至ch05-016中概括,未单独展开生卡 |
| MySQL发展历史时间线、优缺点清单、字段命名规范具体细节(字符集/存储引擎/varchar规则)、TIMESTAMP与DATETIME存储空间对比、InnoDB具体优化参数清单(innodb_buffer_pool_size等)、无缝切主库方案具体实现(slave start until)、集群方案选型对比(Percona XtraDB Cluster/MySQL Cluster/Group Replication)、SSD配置参数建议、备份系统具体运营数字(一年7000次扩容/2PB数据量)、Query cache与事务隔离级别的具体讨论、Q&A中读写分离与线程池等具体运维问答 | 5.3 | 属于具体历史背景、参数配置清单和运维细节,核心可迁移方法论(NULL字段的隐藏代价/冗余索引与隐式转换陷阱/索引80%覆盖原则/Online DDL影子表迁移思路/心跳表判断延时/复制单线程瓶颈演进/row优于Mixed的binlog选择/TokuDB压缩换存储与恢复时间/备份组合策略/Sharding前先问是否真的需要)已在ch05-017至ch05-026中概括,未单独展开生卡 |
| 微博技术栈背景清单(Tomcat/Storm/Hbase/Motan/Config Service)、known-unknown场景下的具体工具清单(top/perf/netstat/jmap/jstat/TCPdump/strace/btrace等)、Q&A中日志方案Scribe/Logstash的具体选型、监控阈值设置的经验与自动化讨论、btrace可能导致应用假死的风险提示 | 5.4 | 属于具体技术栈背景和工具清单,核心可迁移方法论(原因路径现象非一一对应/定量归类分析的价值/低成本偏好与熟悉偏好的心理障碍/排查工具3分钟价值临界点/未知问题的减法缩小范围策略/排查与解决分离的几板斧原则)已在ch05-027至ch05-032中概括,未单独展开生卡 |
| “意义不明”和”表达能力差”两类较直观的烂代码具体举例(变量缩写g/s/gos等)、”不恰当的组织”反模式的具体现象罗列(代码拷贝/大文件堆砌/几百行函数)、烂代码判断标准的分层讨论(单人维护/团队协作/系统底层)、写好代码的前提清单(理解需求/了解原理/合理抽象等) | 5.5 | 属于较直观的反面案例罗列和标准分层讨论,核心可迁移方法论(语言封装隐藏而非消除代码质量问题/假设反模式最隐蔽难自察/够用代码因场景变化演化成烂代码/重构复杂度非线性/重构收益难量化导致认知错位/用可扩展编程题识别真实代码能力)已在ch05-033至ch05-038中概括,未单独展开生卡 |
| 文档标准的3类具体清单(项目介绍/新人上手/使用者详细说明)、日志评价的具体3个标准(是否足够/表达是否清晰/是否包含足够信息)、”简洁与抽象”部分作者自陈难以总结出简单标准、多本推荐阅读书目(《代码整洁之道》《重构》Release It!等) | 5.6 | 属于具体标准清单和书目推荐,核心可迁移方法论(代码质量评价的两个维度/逐字翻译测试法/约定价值在于降低协作成本而非约定本身对错/单元测试覆盖率作为异常处理代理指标/并发正确性看共享资源保护而非同步手段/性能优化用数据说话/可维护性两个反复追问/信息重复陷阱/模块划分质量的可观测信号)已在ch05-039至ch05-047中概括,未单独展开生卡 |
| 代码仓库作为团队协作标配的一般性说明、质量文化四条个人观点的罗列(烂代码无法避免/无法接受/可以改进/好代码让人开心)、《布道之道》推荐阅读、个人感想中半年写作历程与”更好是方向不是目的地”这句引用名言 | 5.7 | 属于较宽泛的团队文化陈述和个人写作历程,核心可迁移方法论(重构悖论/重构三级分类体系/写不出单元测试即设计缺陷/过渡兼容层控制重构范围/只重构经常修改的部分/性能优化性价比真实案例/量化数据拒绝伪优化/健壮性无立竿见影解法/代码质量熵增类比/统一开发环境消除摩擦/持续反馈一站式整合)已在ch05-048至ch05-058中概括,未单独展开生卡 |
| 大数据来源与应用前景的一般性背景介绍(海地地震SIM卡追踪案例)、数据存储七层分层模型的具体职责清单(DCL/DDL/Common/DSL/DAL/Analysis/Temp)、数据平台监控宏观微观两层面的具体组件清单(DataNode/NameNode等)、Kafka网络线程数参数调优细节、Hive ROW_NUMBER函数导致存储膨胀5倍的具体案例、kg-camus offset记录方案探索过程(文件方案→ZooKeeper方案)的具体细节 | 6.1 | 属于背景介绍、分层清单和具体参数调优细节,核心可迁移方法论(4V特征判断标准/第一代架构问题的统一入口缺失根源/采集网关三层可靠性保障/数据缓存重用层避免重复清洗/推模式转拉模式的架构级调整/THP与Hadoop内存运算的隐藏冲突/列式存储收益取决于列数/原子加API应对延迟数据/大粒度对象锁Bug排查)已在ch06-001至ch06-009中概括,未单独展开生卡 |
| 点评实时计算业务场景清单(Dashboard/实时DAU/搜索推荐案例)、业界使用场景清单(阿里JStorm双11/360Storm验证码识别/腾讯TDProcess/京东Samza)、Storm基础概念与体系架构细节(Nimbus/Supervisor/ZooKeeper assignments节点)、localOrShuffleGrouping与MaxSpoutPending等具体参数配置、Netty传输参数调优细节、Q&A中Blackhole与Swallow对比/日志格式/集群规模等具体运维数字 | 6.2 | 属于业务场景清单、基础概念介绍和具体参数配置,核心可迁移方法论(统一服务层封装存储实现解耦/组件并发度代替线程池/DRPC不适合批量场景/Spout单线程连锁降速/fieldsGrouping热点不均衡/Worker数量非线性关系/三指标定位瓶颈/优化前先测量/业务幂等替代事务机制)已在ch06-010至ch06-018中概括,未单独展开生卡 |
| Elasticsearch2.x具体API变更清单(doc_values/DeleteByQuery插件化/Facet移除/network.host等)、Bulk接口与Index接口速度对比的具体案例、优化建议清单(Lucene version配置/threadpool.search.size调整/timeout参数格式)、ES5.0新特性清单(Lucene 6/Profile API/Search After/Shrink API/Reindex)、Q&A中Solr对比选型/G1与CMS对比/Golang选型Proxy等具体讨论 | 6.3 | 属于具体API变更清单、版本对比数据和技术选型问答,核心可迁移方法论(GC问题应转向应用层排查/deprecated但仍可用API的隐藏坑/版本升级默认值变化的风险/集群多维度切分设计/小集群优先大集群兜底的分层查询/长尾高频访问单独建缓存层/JVM加索引小于物理内存的容量规划)已在ch06-019至ch06-025中概括,未单独展开生卡 |
| HDFS异构存储介质具体清单(ARCHIVE/DISK/SSD/RAM_DISK)与Tachyon对比、YARN对Docker支持的具体局限性与Hulu自研Voidbox方案、HBase新旧接口API对比细节(BufferedMutator)、Family粒度Flush的具体优化点、在线调整配置的具体支持范围、社区发展方向清单(HydraHBase/堆外内存/减少ZooKeeper依赖)、Q&A中TTL历史数据清理与MapReduce导出提速等具体运维问答 | 6.4 | 属于具体特性清单、版本对比细节和运维问答,核心可迁移方法论(YARN标签调度实现异构集群逻辑划分/多Region副本主从分离与脏读代价/RPC读写队列分离避免队头阻塞/Rowkey加盐消除热点的scan代价/HBase不适合承担在线缓存职责)已在ch06-026至ch06-030中概括,未单独展开生卡 |
| HAWQ功能特性完整清单(ANSI SQL标准/多种压缩方法/多种UDF语言/安全权限管理等)、HAWQ历史发展时间线(2011年GOH到2.0 Alpha)、系统组件清单(查询解析器/容错服务/查询派遣器等)、MADLib机器学习库介绍、中短期规划清单、社区贡献流程与联系方式、Q&A中与Hive/Impala的TPCDS性能对比数字 | 6.5 | 属于产品功能清单、发展历程和社区参与信息,核心可迁移架构方法论(存储计算分离加无状态Segment支撑弹性伸缩/资源管理器缓存减少交互代价/分布键匹配连接键省去数据重分布/基于UDP自研协议应对TCP连接数瓶颈/元数据服务故意限定子集为未来拆分预留空间/技术支持某能力不代表适用该场景)已在ch06-031至ch06-036中概括,未单独展开生卡 |
| PostgreSQL发展历史与国内应用背景(中国移动/平安集团/阿里云等案例)、Corosync+Pacemaker具体配置步骤(corosync.conf/pcs命令/RA下载)、postgresql.conf与pg_hba.conf具体参数配置、Q&A中PG与MySQL的binlog粒度对比/pg_shard组件/PG表分区演进等具体技术细节 | 6.6 | 属于历史背景、具体配置步骤和技术细节问答,核心可迁移方法论(从共享存储到流复制解决备库资源浪费/Switchover与Failover的数据保证层级区别/Failover后归队需全量重新同步的代价/同步复制的三重真实代价/通用HA软件与数据库复制机制的能力鸿沟)已在ch06-037至ch06-041中概括,未单独展开生卡 |
| B树/LSM树等磁盘KV存储结构细节、关系代数引擎AST解析与执行计划生成的技术细节、层次数据库的具体代码示例、阿里DRDS双11场景的具体运营描述、ADS与DRDS的定位互补关系、Q&A中JOIN实现方式(hash/index nest loop/sort merge)与WebScaleSQL对比等具体技术问答 | 6.7 | 属于底层存储结构细节、执行引擎技术细节和具体产品对比问答,核心可迁移方法论(关系模型胜出的根本原因是简单易用/二级索引空间换时间的本质/NoSQL真正起源于强一致事务性能困境/技术没突破是分布式系统30年未能取代单机的根因/NoSQL到NewSQL螺旋回归验证关系模型不可替代/schema-less的隐藏技术债/存储系统十年稳定期经验法则)已在ch06-042至ch06-048中概括,未单独展开生卡 |
| MySQL5.7完整特性清单(SQL_Mode变化/JSON支持/生成列/spatial index/GTID增强等)、performance_schema与sys数据库改进细节、group replication多主复制的具体机制、MySQLpump等工具介绍、备份策略与Web查询平台等运维问答细节、Q&A中change buffer与聚簇索引物理存储的具体技术讨论 | 6.8 | 属于具体特性清单和运维细节,核心可迁移方法论(redo log增大换取性能稳定的恢复时间代价/query cache被放弃的双重原因/atomic write性价比判断/pt-osc等Online DDL工具的隐藏丢数据坑/LSM Tree写读性能取舍的适用边界/RDS风险与成本的两个真相)已在ch06-049至ch06-054中概括,未单独展开生卡 |
| Spark版本演化时间线(1.2到1.6各版本重点特性)、DataSource API的具体数据源支持清单、Hulu大数据平台组件清单(HDFS/YARN/HBase/Hive/Cassandra等)、DataSet API的具体设计目标清单、Q&A中Storm与Spark对比/YARN资源隔离/Tungsten稳定性等具体技术讨论 | 6.9 | 属于版本演化清单和平台组件介绍,核心可迁移方法论(Tungsten性能瓶颈从IO转向CPU内存的洞察/DataFrame统一多语言查询引擎的抽象设计/StackOverflow问题的递归改迭代解法/Streaming数据积压的先初始化后调度解法/细粒度锁实现漏洞引发死锁的教训/统一内存管理器的动态借用机制)已在ch06-055至ch06-060中概括,未单独展开生卡 |
| PostgreSQL发展历史时间线(Ingres起源/POSTGRES项目/Postgres95改名/7.x至9.4各版本特性演化)、萧少聪个人背景介绍、OLAP函数清单(array_agg/GROUPING SETS/CUBE/ROLLUP)、疑问与解惑中PG与MySQL/Oracle/DB2的成本运维对比闲聊、transaction ID增量查询等具体运维问答、智能电表IOPS计算题 | 6.10 | 属于历史沿革、人物背景和产品对比闲聊,核心可迁移方法论(UPSERT原子化消除竞态窗口/BRIN用摘要信息换取写入性能/RLS把隔离规则下沉到数据库强制层/WAL压缩用CPU换IO与网络/pg_rewind基于WAL增量识别变更块/JSONB宽表模式下放模式变更成本/FDW统一接口的能力边界)已在ch06-061至ch06-067中概括,未单独展开生卡 |
| 毕洪宇个人背景介绍、存储引擎清单与压测数字(MMAP/RocksDB/Memory引擎具体版本演进、1.18Billion记录数从3.12TB压缩到270GB的压测数据)、Batch Index/Partial Index/Join($lookup)开源风波等具体特性介绍、Q&A中MongoDB与PostgreSQL/Solr的GIS选型对比/与MySQL替代性讨论/与Redis选型对比/对NewSQL的态度/与ZooKeeper结合可能性等具体产品比较与个人经验分享 | 6.11 | 属于人物背景、具体压测数字和产品对比闲聊,核心可迁移方法论(Document级并发控制把锁粒度下沉到冲突最小单元/复用已有复制通道做心跳检测避免风暴/递增ElectionID用显式编号替代保守等待/ReadConcern引入quorum读一致性对应W+R>N/ConfigServer纳入复制集使元数据节点同样共识化/DocumentValidator把校验能力部分收回存储层/做得少就做得快的性能哲学)已在ch06-068至ch06-074中概括,未单独展开生卡 |
| 王晓伟个人背景介绍、垂直搜索应用场景清单(拼音搜索/关键字搜索/like查询痛点等具体举例)、整体架构模块清单(种子发生器/Crawler/Parser/Analyser/Indexer/OCR等)具体实现细节、OCR从Tesseract切换到自研数字识别服务、RabbitMQ切换到自研Redis MQ Agent的具体细节、SCWS中文分词器的具体实现、Q&A中Ajax抓取方案缺失/MongoDB库锁优化/模板调试console/URL反垃圾/用户行为日志训练缺失等具体技术问答 | 6.12 | 属于人物背景、具体架构模块清单和运维问答细节,核心可迁移方法论(垂直搜索与全文搜索理解搜索意图的本质差异/技术选型要基于业务价值判断/基础设施选型要匹配团队工程背景与运维能力/模板语言隔离业务解析逻辑应对异构数据源/布隆过滤器应对亿级数据查重的空间权衡/短文本场景TF/IDF失效改用预置权重词根树/单线程加异步模型用简化换可维护性/算法效果关键在数据预处理)已在ch06-075至ch06-082中概括,未单独展开生卡 |
| 郭伟个人背景介绍、大禹系统具体开发语言与硬件设备细节、2015年7月21日290GB真实攻击案例与锤子接入案例的具体数据、NTP反射攻击的具体防御手段/GSLB与LDNS缓存TTL配置细节/OSPF分流与内核数据流向修改等具体技术手段、大禹与绿盟黑洞/云盾/宙斯盾的产品对比、蜜罐逻辑与黑白名单存储方式等具体实现细节 | 7.1 | 属于人物背景、具体攻防数据和产品对比问答,核心可迁移方法论(分布式与集中式防护的带宽扩展性换协议覆盖取舍/双IP架构隐藏真实地址/异常流量判断需结合行为特征而非单看流量突增/源IP可伪造与真实用户混杂不宜直接封禁/DDoS防护本质是资源对抗)已在ch07-001至ch07-005中概括,未单独展开生卡 |
| 冯磊与赵星宇个人背景介绍、HttpDNSLib库8个package具体代码结构(cache/HttpDNS/log/Model/Query/Score/SpeedTest/NetWorkType)、具体测试数据(70k体积/5000行代码/99.49%兼容性/5ms平均耗时)、南北网络运营商出口不一致案例的具体细节、DNSPod企业版配置与CNAME递归解析的具体问答、速度插件评分公式数值示例、数据库实例锁替代请求锁解决死锁的具体实现 | 7.2 | 属于人物背景、具体代码结构和测试数据问答,核心可迁移方法论(HttpDNS用HTTP直连替代DNS协议从根源消除劫持/请求合并防止并发穿透后端/缓存维度要匹配最优值实际变化的环境维度/TTL过期前预取过期后宽限的平滑更新/可插拔加权评分体系实现排序开闭扩展/缓存逻辑指针而非提前解析的物理值)已在ch07-006至ch07-011中概括,未单独展开生卡 |
| 马涛个人背景介绍、CDN系统架构模块清单(运营系统/网络管理系统/负载均衡系统/分发服务系统)具体职责细节、调度模块的IP库构建来源与权值建模、95计费具体规则、flv与MP4快进机制差异的具体技术细节、SDK嵌入对客户的顾虑清单、TCP打洞的复杂性提及、Q&A中首次域名解析慢排查/顶级节点分布式存储管理/物联网加速意义等具体问答、大量外部参考链接 | 7.3 | 属于人物背景、具体架构模块清单和外部参考资料,核心可迁移方法论(DNS与非DNS解析接入CDN的兼容性换调度能力取舍/CDN多层级架构收敛回源请求避免打爆源站/推模式预取热点资源/大文件切片跨磁盘条带化提高吞吐/防盗链强度应匹配资源价值/随机化或加密打破不受信任透明代理/Nginx线程池隔离阻塞磁盘IO/消峰要辨别高峰可推迟性/P2P打洞借主动连接建立临时NAT映射)已在ch07-012至ch07-020中概括,未单独展开生卡 |
| 马涛个人背景重复介绍、HTTPS握手协议基础机制说明(域名解析/TCP连接/安全握手/非对称密钥换对称密钥)、X.509证书标准提及、TLS与SSL版本缺陷的背景说明、国内外CDN厂商对两种证书方案的支持率统计 | 7.4 | 属于人物背景和协议基础背景知识,核心可迁移方法论(CDN透明转发与HTTPS证书域名验证的根本冲突/Custom与Shared两种证书方案私钥暴露与浏览器安全降级的取舍)已在ch07-021至ch07-022中概括,未单独展开生卡 |
| 蒋海滔个人背景介绍、DOM型/反射型/存储型XSS的具体代码示例、传输劫持(DNS劫持/链路劫持)具体机制、账密泄漏常见密码统计与撞库现象、暴力破解与身份token窃取的简述、转义字符具体编码对照表(HTML/JS/URI转义规则)、加密套件配置具体参数(ECDHE/AES_GCM)、OpenSSL命令行操作细节、身份Token的HttpOnly与机器绑定保护、Q&A中白盒测试工具推荐/中间人攻击防护/防枚举设计/HTTPS走CDN的三种证书方案/移动端数据加密/对称加密签名方案对比/安全书籍推荐等具体问答、进一步阅读的外部参考链接清单 | 7.5 | 属于人物背景、具体代码示例和大量运维配置细节,核心可迁移方法论(CSRF根因是浏览器自动携带同源cookie/CSRFToken防御依赖攻击者无法预测的凭证/CSP用白名单从架构层面阻断脚本注入/SQL注入解法是把数据与代码彻底分离/配置HTTPS不等于安全需逐环核查/HSTS防御SSLStrip降级劫持/HPKP防御CA信任链被攻破/加密存储要权衡破解成本与登录接口DoS风险/FIDO用本地私钥挑战响应替代共享密码)已在ch07-023至ch07-031中概括,未单独展开生卡 |
引用文献
| 标题 | 类型 | 出现章节 | 一句话语境 |
|---|---|---|---|
| Greenplum | 框架 | 6.10 | 基于MPP架构的OLAP数据仓库解决方案,仅提及名称未展开技术细节 |
| PG-Strom | 框架 | 6.10 | 基于GPU实现高性能SQL透明查询的PostgreSQL扩展,仅提及名称未展开 |
| PipelineDB | 框架 | 6.10 | 基于视图技术的关系型数据库流式计算方案,仅提及名称未展开 |
| pg_shard | 框架 | 6.10 | PostgreSQL数据分片技术,文中仅说明不保证ACID,未展开具体实现 |
| PostGIS | 框架 | 6.10 | 完全符合OpenGIS标准的PostgreSQL地理信息管理组件,仅提及应用场景未展开技术细节 |
| OliveHC | 框架 | 7.3 | 百度曾开源的CDN回源缓存工具,用于大文件处理场景,文中仅提及其架构定位未展开实现细节 |
| RocksDB | 框架 | 6.11 | Facebook开源的写入强劲NoSQL存储引擎,可作为MongoDB的非官方存储引擎,文中仅提及性能表现突出未展开实现细节 |
资金安全问题案例
| 问题标题 | 问题卡 | 解决方案卡(如有) | 出现章节 | 一句话说明 |
|---|
类别清单核对(系统架构类)
| 维度 | 覆盖状态 | 关联卡片标题或未覆盖理由 |
|---|---|---|
| 1. 服务拆分原则:如何划分服务边界 | 已覆盖 | [[统一系统方案的隐藏陷阱把并行需求变成串行瓶颈]](中心化vs分散的取舍反模式)、[[用架构约束代替文档约束防止流程碎片化]]、[[插件化解决文档失真与团队碎片化的双重矛盾]](2.3节插件化解耦案例)、[[用微服务收敛异地多活的改造复杂度]](关注点下沉到微服务的边界划分依据) |
| 2. 通信机制:同步/异步通信方式的取舍 | 已覆盖 | [[两种服务间通信方式的选型]]、[[同步与异步的区别]]、[[阻塞非阻塞与同步异步不在同一维度]]、[[多路复用IO为何属于同步而非异步]]、[[延时消息队列解决缓存穿透脏数据]] |
| 3. 一致性与事务权衡:跨服务数据一致性的处理策略 | 已覆盖 | [[用日志解决最终一致性系统的CAS冲突]]、[[KV天生分布式友好而事务是最难部分]]、[[GoogleSpannerF1对分布式事务的历史性突破]]、[[有主从与无主从副本策略的CAP权衡全景对比]]、[[ReadConcern引入quorum读一致性对应W+R>N]] |
| 4. 可观测性设计:日志/监控/链路追踪体系 | 已覆盖 | [[不保证可靠作为监控系统的核心设计权衡]]、[[ThreadLocal承载监控上下文匹配Web容器线程池的天然结构]]、[[消息ID的四段式设计承载分布式调用链路串联]]、[[排查工具三分钟价值临界点]] |
| 5. 容错设计:熔断、降级、重试等机制 | 已覆盖 | [[分级隔离机制的四个维度与真实故障验证]]、[[应对不稳定外部系统的基础服务容错四件套]]、[[用幂等设计支撑失败重试]]、[[降级开关设计多级读服务链路加开关前置化]] |
| 6. 扩展性瓶颈与应对:系统如何应对规模增长 | 已覆盖 | [[任务分片与弹性扩容缩容的重分片机制]]、[[DistributedLog的无状态代理分层架构]]、[[CDN多层级架构用分层缓冲收敛回源请求避免打爆源站]]、[[分片级别主从而非节点级别主从降低迁移影响]] |
| 7. 部署与发布策略:灰度、回滚等工程实践 | 已覆盖 | [[线下测试与灰度发布的本质]]、[[回滚兼容性的三条秘籍]]、[[禁用latest镜像标签避免版本理解不一致的隐患]] |
提取脚本
/private/tmp/claude-501/-Users-wangyi-claudecodeProject-bookNotes/54681e1b-f7d1-4c9a-a361-8fe6640643df/scratchpad/gaokeyong_extract.py
(用法:python3 gaokeyong_extract.py <章节标识> <输出文件>;章节标识形如1(整章)或1_2(第1章第2节);
按content.opf的spine顺序拼接该前缀下所有xhtml文件;
源文件目录:notes/高可用架构(第1卷)/_epub-src/OEBPS/Text/,文件命名形如Chapter1_2_3.xhtml表示第1章第2节第3小节)
章节与卡片
01 高可用架构案例精选
- 日志串行化冲突 普通读书笔记卡
- 用日志解决最终一致性系统的CAS冲突 结构图卡
- 增量同步边界 普通读书笔记卡
- 分布式日志的三大核心需求与负载类型 普通读书笔记卡
- 弱网选路策略 普通读书笔记卡
- Apache BookKeeper的核心抽象与写入流程 普通读书笔记卡
- 异地多活前提 普通读书笔记卡
- BookKeeper用LAC指针替代选主的一致性模型 结构图卡
- N加2冗余 普通读书笔记卡
- DistributedLog的无状态代理分层架构 普通读书笔记卡
- 同步异步维度 普通读书笔记卡
- 对抗刷单的三环节防御思路 普通读书笔记卡
- 黑白双分类器与矩阵式风险判定框架 普通读书笔记卡
- 大数据风控的数据广度与深度 普通读书笔记卡
- 代理IP识别的四种技术手段 普通读书笔记卡
- 安全系统的"有损一致性"设计哲学 普通读书笔记卡
- 多终端同步与传统IM投递的本质差异 普通读书笔记卡
- Grouk同步协议的五个设计目标 普通读书笔记卡
- Grouk同步协议的Folder+ChangeSet数据结构 结构图卡
- Grouk同步协议的优缺点与版本号设计取舍 普通读书笔记卡
- 长连接系统性能指标的定语陷阱 普通读书笔记卡
- 360消息系统的六大组件架构 结构图卡
- 三种推送模型的权衡 普通读书笔记卡
- 影响推送系统到达率的四个因素 普通读书笔记卡
- Go协程GC优化的三个教训 普通读书笔记卡
- 池化技术的收益代价与过度优化反思 普通读书笔记卡
- 用冷备而非双写解决session一致性 普通读书笔记卡
- 预建索引替代扫描列表的性能优化 普通读书笔记卡
- Akka日志组件的瞬时峰值坑 普通读书笔记卡
- 组合净值计算的分级批量优化 普通读书笔记卡
- 创业公司架构优化:解决到可接受程度而非极致 普通读书笔记卡
- 最小改动原则:拒绝重写,也拒绝"裱糊匠"式打补丁 普通读书笔记卡
- 三个核心指标与"倍数留白"的评审原则 普通读书笔记卡
- 用幂等设计支撑失败重试 普通读书笔记卡
- 一致性哈希绑定会话与限定更新时机 普通读书笔记卡
- 短视频数据相比文本的三大架构差异 普通读书笔记卡
- 视频处理的客户端服务端分工原则 普通读书笔记卡
- 两种服务间通信方式的选型 普通读书笔记卡
- 分级隔离机制的四个维度与真实故障验证 结构图卡
- 多CDN与多云存储互备的容灾设计 普通读书笔记卡
- 客户端协议兼容性的踩坑教训 普通读书笔记卡
- 微博异地多活的技术选型演进:从MytriggerQ失败到MCQ的WMB方案 普通读书笔记卡
- 异地多活的五大挑战 普通读书笔记卡
- 延时消息队列解决缓存穿透脏数据 结构图卡
- 单元化方案与跨机房同步方案的对比 普通读书笔记卡
- 容量冗余设计与分钟级/小时级恢复节奏 结构图卡
- 异地多活方案选型的六个决策维度 普通读书笔记卡
- 用微服务收敛异地多活的改造复杂度 普通读书笔记卡
- 可用性的两大决定因素:MTBF与MTTR 普通读书笔记卡
- 人工响应的两分钟极限与发布风险 普通读书笔记卡
- N+2冗余标配与实例对等独立原则 普通读书笔记卡
- 高可用系统必备的三种流控场景 普通读书笔记卡
- 线下测试与灰度发布的本质 普通读书笔记卡
- 回滚兼容性的三条秘籍 结构图卡
- 可用性七级图表 结构图卡
- 用Error Budget倒逼开发团队自律 普通读书笔记卡
- 同步与异步的区别 普通读书笔记卡
- 阻塞、非阻塞与同步、异步不在同一维度 结构图卡
- 多路复用I/O为何属于同步而非异步 普通读书笔记卡
02 高可用架构原理与分布式实践
- 耦合换简单 普通读书笔记卡
- Codis相比Redis Cluster的架构选择:无状态Proxy+可插拔存储 普通读书笔记卡
- 跨Key原子边界 普通读书笔记卡
- 一致性优先于读写分离的业务判断 普通读书笔记卡
- 插件化收束变化 普通读书笔记卡
- 分布式场景下MSET失去原子语义与hashtag解决多key路由 普通读书笔记卡
- 协议三要素 普通读书笔记卡
- RebornDB下一代架构的三项演进方向 普通读书笔记卡
- 任务分片稳定性 普通读书笔记卡
- Codis生产环境实践经验合集 普通读书笔记卡
- Paxos最大提交 普通读书笔记卡
- KV天生对分布式友好、事务是分布式数据库最难的部分 普通读书笔记卡
- 选型先问背景 普通读书笔记卡
- Google Spanner/F1对分布式事务问题的历史性突破 普通读书笔记卡
- 简单直接的规则替代模糊期待,能更快建立信任 普通读书笔记卡
- Trust是远程/Soho协作能否有效运转的核心机制,而非面对面在场 普通读书笔记卡
- 创始人性格塑造公司执行节奏:侵略性执行 vs 讨论型延迟 普通读书笔记卡
- 插件化解决文档失真与团队碎片化的双重矛盾 普通读书笔记卡
- "再建一个统一系统"方案的隐藏陷阱:把并行需求变成串行瓶颈 普通读书笔记卡
- 用架构约束代替文档约束:把业务流程集中到引擎侧防止"偷偷改流程" 普通读书笔记卡
- 何时该用现成标准框架、何时该自研规范:以OSGI vs 自定义插件规范为例 普通读书笔记卡
- 沙盒隔离与"提交源码而非编译产物"的设计考量 普通读书笔记卡
- "满足需求的最小自由":交互界面上折中一致性与灵活性 普通读书笔记卡
- 应对不稳定外部系统的基础服务容错四件套 普通读书笔记卡
- IM系统区别于普通Web系统的四大特性 普通读书笔记卡
- SMC定理与"系统层重复换业务层不丢不重" 普通读书笔记卡
- 状态扩散的推拉分层策略:按实时性要求分层,而非一刀切 普通读书笔记卡
- IM应用层协议三种范式的取舍对比,及移动端为何应避开XMPP 普通读书笔记卡
- 定长包头+可扩展包体的协议设计范式 普通读书笔记卡
- IM密钥管理三种方式的权衡:固定密钥、一人一密钥、动态密钥 普通读书笔记卡
- HTTP长轮询:用"夯住连接"而非提高频率实现近实时,消息池补上竞态窗口 结构图卡
- 对等结构与Meta/Data分离结构的取舍:Bada为何选择对等设计 普通读书笔记卡
- 为什么放弃EC纠删码而用主从副本:恢复代价决定编码方案的适用边界 普通读书笔记卡
- 有主从与无主从副本策略的CAP权衡全景对比 普通读书笔记卡
- 分片级别主从而非节点级别主从:把迁移和扩容的影响最小化 普通读书笔记卡
- 用轻量级库代替独立服务:Bada为何用Mnesia而非ZooKeeper 普通读书笔记卡
- 多机房数据同步的两种主流方案,及Cassandra的Read Repair冲突修复机制 普通读书笔记卡
- 多机房写入冲突解决的三种方案:时间戳最新、Primary Key、Vector Clock 普通读书笔记卡
- 文件级复制迁移相比逐条写入迁移的效率优势:LevelDB vs MongoDB的选型启示 普通读书笔记卡
- 何时用定时任务、何时用消息中间件:四个判断维度 普通读书笔记卡
- 任务分片与弹性扩容缩容的重分片机制 结构图卡
- 主动牺牲性能换取幂等性与失效转移的正确性 普通读书笔记卡
- 分片项作为纯逻辑概念,用自定义参数与业务语义解耦 普通读书笔记卡
- 积木类与大厦类开源产品的复用边界 普通读书笔记卡
- 框架类产品的质量优先级排序:可读性优先于功能正确性和性能 普通读书笔记卡
- 无中心化调度下主从触发时序不一致的兜底修正 普通读书笔记卡
- RTB全链路百毫秒时延约束对架构的强制要求 普通读书笔记卡
- 程序化购买颠覆传统广告产业链:从粗放包段销售到受众定向的流量拆分 普通读书笔记卡
- RTB适配器层:把多方流量格式差异消灭在边界,让系统内部保持一致 普通读书笔记卡
- RTB引擎的准实时热插拔算法架构:动态链接库+文件系统事件通知 结构图卡
- RTB无状态设计:把复杂计算下放给外部辅助系统,换取自身的快速可靠反馈 普通读书笔记卡
- 受众定向的三类计算框架:用户标签、上下文标签、广告主定制化标签 普通读书笔记卡
- 上下文定向的缓存+TTL+异步抓取架构:cache miss不阻塞返回空集合 结构图卡
- 广告反作弊的核心方法论:顺藤摸瓜追踪利益链条,蜜罐主机反制P2P刷量 普通读书笔记卡
- CPS引流作弊:用302跳转劫持本该属于DSP的转化归因 普通读书笔记卡
- 索引优化前先诊断瓶颈真的在系统本身,而非想当然去调优 普通读书笔记卡
- Routing是查询性能优化的"王道":把查询流量按维度拆分到独立小集群 普通读书笔记卡
- 分索引优于盲目增加Shard数量:I/O压力与可控性的取舍 普通读书笔记卡
- 排除高成本字段不索引,通过独立查询路径支撑那一小部分需求 普通读书笔记卡
- JVM 32G现象:多个小heap实例优于单个巨大heap 普通读书笔记卡
- 每日主动段合并优化:碎片化是查询性能的隐形杀手 普通读书笔记卡
- 分布式存储设计题:用明确排除范围来聚焦真正要解决的核心问题 普通读书笔记卡
- 分布式存储设计的三维目标:可扩展、整体成本、高可用,及冷热分级存储 普通读书笔记卡
- Range分片与Hash分片的策略取舍,及分片数量的两难权衡 普通读书笔记卡
- 用时间维度分片实现冷热分离,免去大规模数据迁移 结构图卡
- 权重Hash分片:均匀分散热点用户,避免数据倾斜 普通读书笔记卡
- 二级索引表:支撑跨分片库分页查询的定位机制 普通读书笔记卡
- 强同步与异步复制的取舍,及Max Availability模式的本质 普通读书笔记卡
- 主备选主机制的单点与多点Lease方案及其局限 普通读书笔记卡
- Paxos两阶段协议的核心机制:Prepare的"两个承诺一个应答"与Accept达成决议 结构图卡
- 最大Commit原则:为什么恢复时每条日志都要重新执行完整Paxos 普通读书笔记卡
- Multi-Paxos选主的本质:关心谁赢得了多数派应答,而非达成决议内容 普通读书笔记卡
- Multi-Paxos把选主视为Prepare阶段,任期内日志同步只需Accept 普通读书笔记卡
- "幽灵复现"现象:乱序确认带来的日志诡异重现,及StartWorking日志的解决方案 结构图卡
- 时钟误差驱动的变种选主协议:用硬件精度换协议简化,及其适用边界 普通读书笔记卡
- Raft用"日志必须连续接收"的假设简化Multi-Paxos,代价是网络抖动容忍度降低 普通读书笔记卡
- OpenResty的核心价值:用同步代码风格写出非阻塞I/O,大幅降低高性能服务端开发门槛 普通读书笔记卡
- 技术选型方法论:先勾勒理想化技术模型,再挑选符合模型的具体实现 普通读书笔记卡
- 企业产品与互联网产品引入新技术的不同策略:渐进替换 vs 快速全量切换 普通读书笔记卡
- 技术选型除性能指标外,还要评估学习资料、招聘和单点依赖等"软指标" 普通读书笔记卡
- 用专项异常模拟工具覆盖常规测试的盲区:OpenResty的I/O与内存泄漏测试实践 普通读书笔记卡
- 火焰图:不修改代码、不重启服务的应用无感知线上性能定位方法 普通读书笔记卡
- 表面相似的技术未必构成替代关系:以NginScript与OpenResty为例 普通读书笔记卡
- 从"嵌入脚本语言"到"编译型DSL平台":OpenResty的技术演进路线 普通读书笔记卡
03 电商架构热点专题
- 线上压测真实 普通读书笔记卡
- 静态化到全动态化:架构演进的真正驱动力是需求变化的速度 结构图卡
- 异步异构挡流 普通读书笔记卡
- 数据闭环:去依赖化的四步实现——异构、原子化、聚合、存储 普通读书笔记卡
- 秒杀沙漏 普通读书笔记卡
- Worker无状态化+任务化:用多队列分级和副本队列支撑运维弹性 普通读书笔记卡
- 压力分解 普通读书笔记卡
- 串行变并发+预取依赖数据回传:读服务性能优化的通用范式 结构图卡
- 库存一致性取舍 普通读书笔记卡
- 多级缓存化:从浏览器到分布式存储,及local+remote两级mget优化 结构图卡
- Lambda隔离复杂 普通读书笔记卡
- 降级开关设计:多级读服务链路、开关前置化与业务线程池隔离 普通读书笔记卡
- SSD选型踩坑:消费级盘性能测出来"抖动",根源是硬件等级不对 普通读书笔记卡
- KV存储引擎选型压测方法论:用真实线上流量压测暴露理论对比看不出的抖动 普通读书笔记卡
- 库存接口被恶意刷:用短TTL缓存和URL重写应对可容忍轻微延迟的高频访问 普通读书笔记卡
- 超时时间设置过长,会把短暂的网络抖动放大成服务错误 普通读书笔记卡
- 全链路全流量线上压测的四种手段:缩容试探、复制流量、模拟流量、流量泄洪 普通读书笔记卡
- 线上压测的数据隔离与风险控制规范:脏数据打标、实时监控、分钟级熔断切换 普通读书笔记卡
- 多级缓存呈漏斗状逐级拦截:让每一层只承担自己该扛的那部分流量 普通读书笔记卡
- 异步双写:用"下次操作自动覆盖补全"把偶发丢数据概率降到接近于零 普通读书笔记卡
- 超热数据缓存:用一个定长队列实现秒级的热点SKU识别 结构图卡
- 异步的两层含义:并行调用节省耗时,中间存储挡流量保护原始数据 普通读书笔记卡
- 接单系统异构:先高效写一份原始数据,再异步拆分到各张业务表 普通读书笔记卡
- 秒杀系统的本质:一个把巨大预约量层层过滤成极小真实写流量的沙漏结构 结构图卡
- 容灾降级:分流限流之后的最后防线,优先牺牲非强依赖服务保住主流程 普通读书笔记卡
- 前后端压力隔离:自建子库把压力挡在第三方资源方和关系型数据层之外 普通读书笔记卡
- 库存一致性取舍:放弃"全体用户看到的规律一致",改保"单个用户看到的规律一致" 普通读书笔记卡
- 用长度受限的队列同时控制高频库存查询与抢购名额发放 普通读书笔记卡
- Transaction ID贯穿用户抢购生命周期,支撑与第三方的多方对账 普通读书笔记卡
- 防刷的边界认知:抢购业务层能做的有限,需要联合支付方且依赖前置账号体系 普通读书笔记卡
- Lambda架构的两个理论假设:数据不可变性与Monoid性质 普通读书笔记卡
- Lambda架构可重计算、容错的代价:同一套算法要实现两遍并保证一致 普通读书笔记卡
- 主题推荐从纯离线自然演化为Lambda架构的路径 普通读书笔记卡
- HBase读写分离:把离线任务的压力隔离在从库,避免拖慢线上响应 普通读书笔记卡
- Kappa架构:对Lambda"必须维护两套系统"这个核心缺陷的回应 普通读书笔记卡
- "一个框架搞定两种不同需求"的一劳永逸倾向,经常被证明是错的 普通读书笔记卡
- 推荐系统冷启动的两个通用策略:数据平滑与热销优质商品补充 普通读书笔记卡
- 把压测问题抽象成init/run/destroy三段式模型:让协议差异收敛到一处 普通读书笔记卡
- VCR流量录制工具:序列化真实请求替代手写日志解析,单线程异步降低对生产的影响 普通读书笔记卡
- 为压测指标聚合选用专用时序数据库:写入速度与聚合查询的双重契合 普通读书笔记卡
- 压测工具从单机到Master/Worker/Counter分布式架构:由真实用户反馈驱动的迭代 普通读书笔记卡
- 决定要不要自建工具前,先系统性评估现有开源方案到底差在哪 普通读书笔记卡
04 容器与云计算
- 混合云条件 普通读书笔记卡
- 混合云决策的五维评估框架:业务场景、成本、效率、趋势、安全性 普通读书笔记卡
- 跨云适配层 普通读书笔记卡
- 按数据敏感度分层决定上云范围:计算和缓存先行,核心数据留守私有云 普通读书笔记卡
- 发现一致性档位 普通读书笔记卡
- Docker Machine选型踩坑:初看理想的方案暴露出扩展性、并发、自定义三重限制 普通读书笔记卡
- Profile隔离 普通读书笔记卡
- 用Docker Daemon Label解耦元数据与调度,但暴露出"改元数据必须重启"的硬伤 普通读书笔记卡
- 业务导向扩容 普通读书笔记卡
- 虚机镜像预构建节省一半初始化时间,但云厂商的启动脚本仍会强制二次修正 普通读书笔记卡
- 资源调度主维度 普通读书笔记卡
- 网络方案的三级权衡,及公有云包转发能力的隐藏硬限制 普通读书笔记卡
- 用专用模块直接对接服务发现,绕开"改配置就要reload"的固有代价 普通读书笔记卡
- 容器调度的三级分层结构与两步调度算法:先过滤再打分 结构图卡
- 动静分离的镜像分层设计:用shell脚本简化Dockerfile,把配置按"何时执行"拆开 普通读书笔记卡
- 禁用swap让服务OOM时快速失败:"死了比慢要好"的设计哲学 普通读书笔记卡
- 去NAT的Bridge网络模式:用管理灵活性换取网络极致性能 普通读书笔记卡
- 混合云架构演进的四阶段模型:从接入层代理到真正双活 结构图卡
- 业务活跃度与市场热度强相关时,靠采购硬件应对峰值是"耍流氓" 普通读书笔记卡
- 让日志与监控数据彻底脱离容器本体:支撑容器"随时可被销毁重建"的前提 普通读书笔记卡
- Rolling平台的质变:从"申请几台机器"到"申请多少计算和存储资源" 普通读书笔记卡
- 技术选型不能只看技术本身,生态成熟度是同等重要的评估维度 普通读书笔记卡
- PaaS网络模型选型的三个硬性需求,及主流方案各自的共性痛点 普通读书笔记卡
- Calico的核心思路:让容器网络完全落回三层路由,不需要NAT也不需要隧道封包 结构图卡
- Profile+Tag机制:从"一对一互通"扩展到"一组对一"的访问控制简化 普通读书笔记卡
- Calico性能测试证明:拒绝隧道封包的纯路由方案,性能可以做到接近物理机 普通读书笔记卡
- Calico劫持Docker API的代价:网络初始化滞后于容器启动,头几秒无网可用 普通读书笔记卡
- 第一代PaaS完整闭环设计的落地教训:平台的理想范式与业务的真实诉求相冲突 普通读书笔记卡
- 从"做PaaS"到"做编排调度平台":放弃强一致性范式,改用消息广播让业务自主决策 普通读书笔记卡
- Tunnel与Route两条网络路线的取舍,及为什么选择相对冷门的MacVLAN 普通读书笔记卡
- 存储引擎的实测驱动选型:Devicemapper与Overlay在小文件持续写场景下的真实差异 普通读书笔记卡
- 独占核+碎片核的CPU弹性复用调度模型 普通读书笔记卡
- 按峰值预留容量的资源浪费:Redis集群从"一开始就撑住15万QPS"到按需自动扩容 普通读书笔记卡
- 新技术落地的三条经验:先满足业务再推动重构、降低平台耦合、先落地再立规范 普通读书笔记卡
- 监控采集踩坑:直接复用底层库的Manager会意外覆盖容器已有的cgroups配置 普通读书笔记卡
- 用银行储蓄机制类比混合云资源共享池的核心设计思想 普通读书笔记卡
- 混合云两种部署方案的取舍:把公有云当完整数据中心镜像,还是只迁移弹性计算能力 普通读书笔记卡
- 设备申请分层调度:优先复用离线集群、低负载集群、错峰空闲的存量资源 普通读书笔记卡
- Buffer资源池与配额管理:让"资源可以互相借用"不至于失控 普通读书笔记卡
- 支持"反安装"的设备初始化设计:让设备能在业务之间安全干净地流转 普通读书笔记卡
- 禁用latest镜像标签:不同人对"最新"的理解不一致,是隐患而非便利 普通读书笔记卡
05 运维保障
- 配置脱离代码 普通读书笔记卡
- 配置与代码分离的根本动机:变化频率不同的东西不该走同一套发布流程 普通读书笔记卡
- 监控旁路原则 普通读书笔记卡
- 从配置数据的四个特征,反推出恰当的存储组件 普通读书笔记卡
- 全量监控价值 普通读书笔记卡
- 单点写+读验证:让无锁并发读写在"读多写少"场景下既快又对 普通读书笔记卡
- SQL规范防火 普通读书笔记卡
- Agent多线程分工:用中间队列彻底解耦各线程,谁都不需要关心整体结构 结构图卡
- 排查是反推 普通读书笔记卡
- 多层异常兜底设计:针对不同故障场景配备不同的补救手段,而非依赖单一机制 普通读书笔记卡
- 重构不是补偿 普通读书笔记卡
- 三种配置管理产品路线的复杂度取舍:轮询比对、通知耦合数据库、纯粹的通知机制 普通读书笔记卡
- 可维护性起点 普通读书笔记卡
- 用明确的数据源优先级,解决"多份数据副本谁说了算"的问题 普通读书笔记卡
- "不保证可靠":监控系统与业务系统在可靠性设计上的根本分野 普通读书笔记卡
- 用ThreadLocal承载监控上下文:让埋点方式贴合Web容器和RPC框架的天然线程模型 普通读书笔记卡
- MappedByteBuffer在I/O瓶颈下意外变慢:客户端"能异步的都要异步"的教训来源 普通读书笔记卡
- 框架代码要为业务方"想不到的用法"留余地:几万节点监控树引发的OldGC 普通读书笔记卡
- 固定维度建模+单线程无锁:牺牲全维度灵活性,换取简单和低开销 普通读书笔记卡
- 消息ID的四段式设计:让全局唯一ID本身承载定位信息,支撑分布式调用链路串联 普通读书笔记卡
- 基于Message-ID位运算的存储索引设计:用固定长度编码实现O(1)定位 结构图卡
- 利用日志只读特性按小时分片:让"实时"只需要覆盖当前这一小时的内存计算 普通读书笔记卡
- 面对无穷尽的报表需求,把原始数据开放为API,而不是自己承接所有定制需求 普通读书笔记卡
- 字段默认NOT NULL:NULL的两个隐藏代价 普通读书笔记卡
- 索引设计的两个真实陷阱:冗余索引与隐式类型转换导致的全表扫描 普通读书笔记卡
- 索引设计的实用主义原则:"覆盖80%主要查询就好,不求全" 普通读书笔记卡
- Online DDL问题的解法:从原生锁表到基于影子表的异步数据迁移 普通读书笔记卡
- Seconds_Behind_Master判断主从延时不可靠:用心跳表机制更靠谱 普通读书笔记卡
- MySQL复制单线程瓶颈的演进:从库级并行到基于逻辑时间戳的并行 普通读书笔记卡
- binlog格式选row而非Mixed:拒绝"半吊子"方案,避免中间状态最坑人 普通读书笔记卡
- TokuDB高压缩比:60亿行超大表用存储引擎切换换取存储和恢复时间的双重优化 普通读书笔记卡
- 数据库备份体系:按不同场景需求组合多种备份策略,而非依赖单一方案 普通读书笔记卡
- Sharding之前先问"是否真的需要":避免过早分片和过度拆分的双重陷阱 普通读书笔记卡
- 故障排查是反向推导:原因、传播路径、现象之间不是一一对应关系 普通读书笔记卡
- 已获取信息的定量与归类分析,价值远超笼统描述 普通读书笔记卡
- 排查时的两个非技术性障碍:线索价值不确定时的低成本偏好,与"熟悉偏好"心理 普通读书笔记卡
- 排查工具的"3分钟价值临界点":查询耗时一旦超过它,工具在实战中就发挥不出价值 普通读书笔记卡
- 面对完全陌生的问题:先用减法策略缩小范围,再回头理解原理 结构图卡
- 排查与解决要分离:先用"几板斧"恢复服务,再从容排查根因 普通读书笔记卡
- 语言和框架的层层封装,让代码质量问题被隐藏而非真正消失 普通读书笔记卡
- "假设"与缺少抽象:最隐蔽、最难自我察觉的烂代码反模式 普通读书笔记卡
- "够用的代码"演化成烂代码的本质:使用场景变了,代码却没跟着变 普通读书笔记卡
- 重构复杂度与代码复杂度非线性相关:失控的工程,重写往往比重构更划算 普通读书笔记卡
- 重构收益难以量化,导致团队内部形成三方认知错位 普通读书笔记卡
- 用简单但可扩展的编程题,在面试中识别简历无法反映的真实代码能力 普通读书笔记卡
- 代码质量评价的两个维度:抽象定义为何缺乏操作性 普通读书笔记卡
- 逐字翻译测试法:把代码翻译成中文读给别人听,检验可读性是否真的合格 普通读书笔记卡
- 遵循编码约定的价值不在于约定本身对错,而在于降低理解和协作成本 普通读书笔记卡
- 用单元测试覆盖率作为异常处理质量的可操作代理指标 普通读书笔记卡
- 并发正确性的核心判断标准:不是用了哪种同步策略,而是共享资源有没有被真正保护 普通读书笔记卡
- 评价性能优化是否合理:让作者说清瓶颈和收益,用数据说话而非单纯看代码 普通读书笔记卡
- 可维护代码的两个反复追问:"他离职了怎么办?""他没这么做怎么办?" 普通读书笔记卡
- 除了代码重复,还有"信息重复"陷阱:行内注释随项目演进逐渐脱节失效 普通读书笔记卡
- 模块划分质量的可观测信号:规模超限、依赖过多,往往伴随低单元测试覆盖率 普通读书笔记卡
- 重构的悖论:变更越频繁的系统越需要重构,却越难被停下来重构 普通读书笔记卡
- 重构三级分类体系:不同粒度的重构,对应完全不同的时间预算与风险承受方式 结构图卡
- 写不出单元测试本身就是设计糟糕的信号,而不只是测试覆盖率不够的问题 普通读书笔记卡
- 用过渡兼容层控制重构范围,避免一次简单重构演变成持续数周的大工程 普通读书笔记卡
- 只重构经常修改的部分:重构收益取决于代码未来还会不会被继续维护 普通读书笔记卡
- 性能优化的性价比真实案例:一天工作带来3分钟到2秒的提升,一周多工作只带来1秒提升 普通读书笔记卡
- 性能优化必须用量化数据说话:拒绝说不清楚"提升了多少"的炫技式优化 普通读书笔记卡
- 健壮性没有立竿见影的解法:测试覆盖不等于质量保证,谨慎发明轮子 普通读书笔记卡
- 代码质量像熵一样自然趋于混乱:环境和团队的持续变化是根本原因 普通读书笔记卡
- 统一开发环境:消除大量原本要靠人力争论和排查的无意义摩擦 普通读书笔记卡
- 持续反馈机制要一站式整合进工作流,而不是依赖人工主动查看 普通读书笔记卡
06 大数据与数据库
- 数据入口统一 普通读书笔记卡
- 大数据的4V特征:不是数据量大就叫大数据 普通读书笔记卡
- 实时平台抽象 普通读书笔记卡
- 第一代大数据架构问题的共同根源:每个环节都缺少统一入口 普通读书笔记卡
- 实时计算隔离 普通读书笔记卡
- 采集网关的三层可靠性保障:在Kafka不提供exactly once的前提下实现at least once 结构图卡
- 共享存储浪费 普通读书笔记卡
- 数据缓存重用层:利用Kafka可重复消费特性,避免同一份数据被实时和离线各自重复清洗 普通读书笔记卡
- 同步复制代价 普通读书笔记卡
- 从推模式长连接到拉模式定时批量消费:一次真正解决持续性故障的架构级调整 普通读书笔记卡
- NewSQL回环 普通读书笔记卡
- THP特性与Hadoop高密度内存运算的隐藏冲突:操作系统底层优化未必适配所有应用负载 普通读书笔记卡
- 垂直搜索适配 普通读书笔记卡
- 列式存储的真实收益案例:性能提升取决于作业实际需要的数据列数 普通读书笔记卡
- 原子加API:让延迟到达的数据能正确叠加,而不是被迫扩大时间窗口消耗内存 普通读书笔记卡
- Hadoop大粒度对象锁Bug:底层实现细节在高并发写场景下引发连锁故障 普通读书笔记卡
- 用统一服务层封装存储细节,实现实时计算和线上业务的彻底解耦 普通读书笔记卡
- 用组件并发度代替线程池:避免单个组件在内部悄悄吃光整机资源 普通读书笔记卡
- 不要用DRPC批量处理大数据:设计初衷决定了适用边界 普通读书笔记卡
- 不要在Spout中处理耗时操作:单线程特性会让耗时逻辑连锁拖慢整体吞吐 普通读书笔记卡
- fieldsGrouping的隐藏陷阱:按字段分组容易因热点数据导致下游处理不均衡 普通读书笔记卡
- Worker数量与吞吐量的非线性关系:并非越多越好 普通读书笔记卡
- 用三个具体指标定位Storm性能瓶颈,而不是凭感觉调优 普通读书笔记卡
- Storm高性能设计的五条原则:优化的前提永远是测量,而不是主观臆测 普通读书笔记卡
- 用业务幂等设计替代重量级事务机制,应对at least once带来的重复数据 普通读书笔记卡
- GC问题排查的核心洞察:常规调优手段全部失败时,很可能不是GC策略问题,而是应用的Bug 普通读书笔记卡
- Deprecated但仍可用的API埋下的隐藏坑:兼容性妥协容易让人沿用旧写法而踩坑 普通读书笔记卡
- 版本升级中容易被忽视的默认值变化:一个从1改到0的参数默认值引发GC死循环 普通读书笔记卡
- 集群按多维度组合切分:routing、时间、业务、是否需要全文索引 普通读书笔记卡
- 用小集群优先查询、大集群兜底:进一步降低大集群访问压力的分层策略 普通读书筆记卡
- 为高频、集中的访问模式单独构建缓存层:Cloud Query池的设计 普通读书笔记卡
- 容量规划的经验公式:"JVM+索引大小<物理内存" 普通读书笔记卡
- YARN基于标签的调度:用逻辑标签而非物理隔离,实现异构集群的动态划分 普通读书笔记卡
- HBase多Region副本:用主从分离换取读高可用,代价是从副本可能读到脏数据 普通读书笔记卡
- RPC读写队列分离:避免一个大Scan请求阻塞排在它后面的Get请求 普通读书笔记卡
- Rowkey加随机前缀(salting)消除写热点,代价是一次scan要拆成多路并发 普通读书笔记卡
- HBase随机读性能不足以支撑在线缓存服务,应改用专用缓存组件 普通读书笔记卡
- 存储计算分离+无状态Segment:弹性执行引擎能动态伸缩的两个设计基础 普通读书笔记卡
- 资源管理器主动缓存资源:用一次性交互代价换取支撑毫秒级查询的能力 普通读书笔记卡
- 让数据分布方式提前匹配常见连接键,能在查询时省去一整轮数据重分布 普通读书笔记卡
- 基于UDP自研可靠传输协议:应对TCP在超大规模连接数场景下的扩展性瓶颈 普通读书笔记卡
- 元数据服务故意只实现SQL的一个子集:为未来拆分成独立服务预留扩展空间 普通读书笔记卡
- 技术上支持某能力,不代表该被用于对应的场景:HAWQ支持事务但不推荐做OLTP 普通读书笔记卡
- 从共享存储到流复制的HA架构演进:解决备库长期闲置浪费资源的问题 普通读书笔记卡
- Switchover与Failover的本质区别:主动切换能保证数据完整,意外故障只能保证事务一致 普通读书笔记卡
- Failover之后,原主库要重新加入集群需要付出全量数据同步的代价 普通读书笔记卡
- 同步复制模式的三重真实代价:性能、可用性、方案成熟度 普通读书笔记卡
- 通用HA软件与数据库特定复制机制之间存在能力鸿沟:进程级高可用不等于数据级高可用 普通读书笔记卡
- 关系模型战胜层次模型的根本原因:简单易用,而不是数学上更自洽 普通读书笔记卡
- 二级索引的本质:再建一个Map,用空间换时间解决O(N)遍历效率问题 普通读书笔记卡
- NoSQL的真正起源:分布式强一致事务因网络延迟导致性能不升反降,倒逼一批场景主动放弃事务和SQL 普通读书笔记卡
- "技术没突破":分布式系统被预言了30年却没能取代单机系统的真正原因 普通读书笔记卡
- 从NoSQL到NewSQL的螺旋回归:一路兜转后,仍需回到关系模型的表达能力上 结构图卡
- Schema-less设计的隐藏技术债:数据可以随意塞进去,问题是出了事都找不到源头 普通读书笔记卡
- 一个存储系统至少需要十年才能真正稳定:评估新兴存储技术成熟度的经验法则 普通读书笔记卡
- redo log增大换取更稳定的性能,代价是故障恢复时间变长 普通读书笔记卡
- query cache被官方最终放弃的双重原因:全局锁争用+缓存效果本身不好 普通读书笔记卡
- 技术上支持不代表值得用:atomic write的性价比判断 普通读书笔记卡
- Online DDL工具的隐藏坑:本该保护数据的工具,在特定场景下反而会导致数据丢失 普通读书笔记卡
- LSM Tree存储引擎的写读性能非对称取舍:适合写多读少,不是万能替代品 普通读书笔记卡
- RDS降低运维门槛的同时,要权衡数据安全风险和它未必更省钱这两个真相 普通读书笔记卡
- Tungsten项目的核心洞察:性能瓶颈已从I/O转向CPU和内存,优化重心要跟着实际瓶颈走 普通读书笔记卡
- DataFrame的设计价值:用一套共享的执行流程,统一原本各自为战的多语言多查询引擎 结构图卡
- 迭代次数过多触发StackOverflow:递归改迭代、把序列化数据从栈挪到堆的解法 普通读书笔记卡
- Streaming数据积压问题:用"先初始化、后调度"解决Receiver和Executor的就绪时序不匹配 普通读书笔记卡
- 细粒度锁实现存在漏洞反而引发死锁:好的设计意图未必能正确落地 普通读书笔记卡
- 统一内存管理器:解决"静态划分没有一个默认值能覆盖所有场景"的问题 普通读书笔记卡
- UPSERT:用一次原子操作消除"存在则更新"的竞态窗口 普通读书笔记卡
- BRIN块范围索引:用粗粒度摘要信息换取更快写入和更小体积 普通读书笔记卡
- 行级安全RLS:把数据隔离规则下沉到数据库强制层,而非依赖应用自觉 普通读书笔记卡
- WAL日志压缩:用CPU开销换取更少的磁盘与网络传输量 普通读书笔记卡
- pg_rewind:用WAL精确定位变更块,避免故障节点重新加入时的全量重建 普通读书笔记卡
- JSONB宽表模式:把模式变更成本从"改表结构"下放到"改字段内部数据" 普通读书笔记卡
- FDW外部数据包装器:统一SQL接口的能力边界,不宜过度使用 普通读书笔记卡
- Document级并发控制:把锁粒度下沉到真正冲突的最小单元 普通读书笔记卡
- 复用已有复制通道做心跳检测:避免探测机制随节点数增长产生风暴 普通读书笔记卡
- 引入递增Election ID:用显式编号替代保守等待,缩短故障恢复时间 普通读书笔记卡
- Read Concern引入quorum读一致性:对应CAP中的W+R>N 普通读书笔记卡
- Config Server纳入复制集:元数据节点同样需要共识机制,不能只是互相无感知的多副本 普通读书笔记卡
- Document Validator:把数据校验能力从应用层部分收回存储层 普通读书笔记卡
- "做得少就做得快":性能优势常常源于主动收缩了保证范围 普通读书笔记卡
- 垂直搜索与全文搜索的本质差异:对搜索意图的理解深度 普通读书笔记卡
- 技术选型要基于业务价值判断,而非单纯通用技术指标 普通读书笔记卡
- 基础设施选型要匹配团队工程背景与运维能力,而非唯技术最优论 普通读书笔记卡
- 用模板语言隔离业务解析逻辑,应对大规模异构数据源适配 普通读书笔记卡
- 布隆过滤器应对亿级数据查重:用可容忍的误判率换取空间与速度 普通读书笔记卡
- 短文本场景下TF/IDF失效:用预置权重的词根树结构替代 普通读书笔记卡
- 单线程加异步模型:用架构简化换取团队实际可维护性 普通读书笔记卡
- 算法效果的关键往往在数据预处理,而非算法本身 普通读书笔记卡
07 安全与网络
- DDoS不宜封IP 普通读书笔记卡
- 分布式防护与集中式防护的取舍:带宽扩展性与故障隔离,换协议覆盖完整性 普通读书笔记卡
- 隐藏源站IP 普通读书笔记卡
- 双IP架构:真实地址隐藏于防护体系之后,泄漏后仍可快速切换 普通读书笔记卡
- HttpDNS三模块 普通读书笔记卡
- 判断异常流量不能只看流量突增,还要看行为特征 普通读书笔记卡
- 按网络缓存DNS 普通读书笔记卡
- 不能直接封禁攻击源IP:源可伪造、真实用户与攻击流量混杂,宁用限流不用硬封锁 普通读书笔记卡
- CDN依赖DNS 普通读书笔记卡
- DDoS防护本质是资源对抗:超出机房带宽后,清洗算法即失效 普通读书笔记卡
- HTTPS证书边界 普通读书笔记卡
- HttpDNS:用应用层HTTP直连替代DNS协议,从根源消除运营商劫持 普通读书笔记卡
- XSS按上下文转义 普通读书笔记卡
- 请求合并:防止缓存未命中时并发请求穿透到后端 普通读书笔记卡
- 缓存维度要匹配最优值实际随之变化的那个环境维度 普通读书笔记卡
- TTL临界点的过期前预取与过期后宽限窗口 普通读书笔记卡
- 可插拔加权评分体系:实现排序策略的开闭扩展 普通读书笔记卡
- 缓存逻辑指针而非提前解析的物理值,以适应环境切换 普通读书笔记卡
- DNS解析与非DNS解析接入CDN的取舍:通用兼容性换定制调度能力 普通读书笔记卡
- CDN多层级架构:用分层收敛回源请求,避免海量节点同时打爆源站 普通读书笔记卡
- "推"模式预取热点资源:从被动响应回源转为主动预判分发 普通读书笔记卡
- 大文件切片跨磁盘分发:用条带化突破单块磁盘的吞吐瓶颈 普通读书笔记卡
- 防盗链是性能与安全的博弈:防护强度应与资源价值成正比 普通读书笔记卡
- 用随机化或加密打破不受信任透明代理的篡改与缓存 普通读书笔记卡
- Nginx线程池:把会阻塞事件循环的同步磁盘IO挪到独立线程池 普通读书笔记卡
- 消峰要辨别高峰的可推迟性,而非无差别限流 普通读书笔记卡
- P2P打洞:借助双方各自主动连接产生的临时NAT映射建立直连 普通读书笔记卡
- CDN与HTTPS的根本冲突:CNAME透明转发与证书域名验证的错位 普通读书笔记卡
- 两种CDN证书方案的取舍:私钥暴露 vs 浏览器安全降级警示 普通读书笔记卡
- CSRF的根因:浏览器自动携带同源cookie,与请求发起来源无关 普通读书笔记卡
- CSRF Token防御:攻击者无法预测的凭证,才是真正的防线 普通读书笔记卡
- CSP用白名单从架构层面阻断脚本注入,而非只依赖转义这道最后防线 普通读书笔记卡
- SQL注入的根因与解法:参数化查询把数据和代码彻底分离 普通读书笔记卡
- 配置HTTPS不等于安全:从软件漏洞到证书信任链都是独立攻击面 普通读书笔记卡
- HSTS防御SSLStrip:让浏览器提前记住这个域名必须强制走HTTPS 普通读书笔记卡
- HPKP证书指纹锁定:防止CA信任链本身被攻破后签发的伪造证书被信任 普通读书笔记卡
- 加密存储要在提高破解成本与登录接口自身被DoS之间权衡 普通读书笔记卡
- 无密码验证FIDO:用本地私钥挑战响应,替代永远存在泄漏风险的共享密码 普通读书笔记卡
相关主题
暂无公开主题。