第 13 章 运维入门:先看什么,再改什么
四类基本信号
服务可用性:Broker、Controller、客户端是否健康,是否有频繁断连。数据安全:副本是否同步、是否存在不可用分区、低于最小同步副本的情况。资源:磁盘剩余与增长、网络、CPU、内存和 GC。业务进度:Lag、端到端延迟、错误率和死信数量。
“CPU 不高”并不表示系统没有瓶颈。一个热点分区、外部数据库慢查询或磁盘写入限制,都可能拖慢处理。
Lag 一直上涨的排查顺序
先确认输入速率是否增加,再看消费速率是否下降;观察是否只有某个分区落后;检查错误重试、下游数据库、第三方 API 和再均衡;最后才判断是否需要增加消费者、分区或 Broker。
如果只有某个大客户占了绝大部分流量,且 Key 是客户号,新增消费者也可能无法分担那个热点分区。修改 Key 又可能影响顺序,所以需要在顺序要求与负载分摊之间设计。
常见故障对照
| 现象 | 优先检查 | 可以采取的下一步 |
|---|---|---|
| 连接 localhost:9092 失败 | Broker 是否启动、端口、终端环境 | 看 Broker 日志,确认地址是否同一台机器 |
| bootstrap 能连,后续连接失败 | advertised.listeners 是否可被客户端访问 | 修正通告地址,特别注意容器与远程访问 |
| 提示 topic 已存在 | 是否重复执行创建 | 先 describe,确认后继续 |
| 消费没有输出 | 主题名、组进度、是否有新数据 | 换全新练习组从头读取 |
| 持续重复处理 | 提交是否成功、业务是否异常 | 检查处理与提交顺序、幂等凭证 |
| NOT_ENOUGH_REPLICAS | ISR 与 min.insync.replicas | 修复副本健康,别先降低可靠性目标 |
| 磁盘快速增长 | 流量、保留、失衡与副本恢复 | 测算增长,规划容量和策略 |
生产环境边界
本书的 PLAINTEXT 本机单节点没有加密认证,也没有机器故障容错。生产部署需要按业务要求规划多节点与故障域、KRaft 仲裁、安全访问、容量、监控告警、升级和恢复演练。
TLS 保护传输,SASL 或双向 TLS 等机制提供身份验证,ACL 限制谁能读写哪些资源。只开放端口并不等于权限管理。安全配置应以对应版本官方文档为准,凭证不要写进书籍示例或提交到代码仓库。