第 10 章 · 可观测性与数据 系统上线之后,我们靠什么知道它"还好"?靠什么定位"哪里坏了"?又靠什么回答"它为什么坏"?本章围绕软件交付的最后一道防线——可观测性,以及它背后的两大数据基础设施:数据库与消息队列,建立从监控到数据的完整认知。读完本章,你将理解三大支柱如何协同回答"正常与否、发生了什么、慢在哪里",也能说清 SQL 与 NoSQL、ACID 与 CAP、Kafka 分区与消费组背后的设计取舍。
系统上线之后,我们靠什么知道它"还好"?靠什么定位"哪里坏了"?又靠什么回答"它为什么坏"?本章围绕软件交付的最后一道防线——可观测性,以及它背后的两大数据基础设施:数据库与消息队列,建立从监控到数据的完整认知。读完本章,你将理解三大支柱如何协同回答"正常与否、发生了什么、慢在哪里",也能说清 SQL 与 NoSQL、ACID 与 CAP、Kafka 分区与消费组背后的设计取舍。
第 10 章沿"看得到 → 存得下 → 传得动"的主线展开:先建立可观测性三大支柱与 SLI/SLO/错误预算的量化框架(含 Prometheus 与 Grafana 实战),再回到数据侧理解 SQL 与 NoSQL、ACID 与 CAP 的取舍逻辑,最后打通事件流:Kafka 如何以分区与消费组实现高吞吐的可靠消息传递。
完成本章后,你将能够:
从"监控"到"可观测性"的认知升级:三大支柱(指标、日志、链路追踪)各回答什么问题;SLI/SLO/错误预算如何把可靠性变成可计算的工程指标;Prometheus 的拉取模型、四种指标类型与告警体系;Grafana 的定位与局限;ELK 日志栈与 APM 的组成。
SQL 与 NoSQL 的适用边界与选型逻辑;ACID 四性质逐一解读;索引为什么能加速查询又有代价;范式设计与反范式;分片与复制的区别;CAP 定理中 CP/AP 的真实分布;慢查询排查的标准三步;主流数据库的端口与典型场景速查。
消息队列解决了什么问题(削峰、解耦、异步、顺序);Kafka 的核心抽象——Topic/Partition/Broker/Offset;Consumer Group 的负载均衡与"一个分区同一时刻只有一个消费者"的约束;消息丢失与重复消费的来源与对策;ZooKeeper 的历史角色与 KRaft 的演进。
可观测性是 SRE 工作方法的核心输入,配合第 1 章的 SLA 承诺与 SRE 职责理解更佳;数据库与消息队列是系统架构的两大基石,与第 7 章 IaC、第 8 章 CI/CD 共同构成生产级系统的闭环。深入学习可继续钻研:Prometheus 告警规则与联邦、OpenTelemetry 统一标准、分布式事务与一致性协议(Paxos/Raft)、Kafka 事务与 Exactly-Once 语义。