01
总线架构基础
交易数据总线的定义、核心组件(Producer、Consumer、Broker)、主流选型对比(Kafka vs RabbitMQ vs Pulsar)。
架构选型
02
延迟指标定义
P99、P999、平均延迟、最大延迟、抖动(Jitter)的概念与计算公式。
指标统计
03
压测环境搭建
硬件选型(CPU/内存/网卡)、操作系统调优(内核参数、文件描述符)、网络拓扑设计。
环境调优
04
压测工具选型
JMeter、wrk、kafka-producer-perf-test、自定义Go压测脚本的优缺点对比。
工具对比
05
压测脚本开发(一)
基于Go的Producer压测脚本编写,连接池、批量发送、异步回调。
GoProducer
06
压测脚本开发(二)
基于Go的Consumer压测脚本编写,消费组、手动提交、并发消费。
GoConsumer
07
压测脚本开发(三)
指标采集与上报,集成Prometheus Client,记录发送/接收时间戳。
监控Prometheus
08
压测执行策略
预热阶段、阶梯加压、持续压测、恢复阶段的设计与意义。
策略压测
09
数据采集与存储
InfluxDB时序数据库搭建、数据点格式设计、Tag与Field规划。
InfluxDB存储
10
可视化看板搭建
Grafana仪表盘设计,延迟分布热力图、吞吐量曲线、P99趋势图。
Grafana可视化
11
单机单分区压测
最小单元性能摸底,排除网络与分区干扰。
基准单分区
12
单机多分区压测
分区数对延迟的影响,分区分配策略(Range vs Sticky)。
分区策略
13
多机集群压测
节点扩展对延迟的影响,数据副本(Replica)带来的额外开销。
集群副本
14
消息大小对延迟的影响
128B、1KB、10KB、100KB、1MB消息体的压测对比。
消息体对比
15
批量大小对延迟的影响
batch.size参数调优,小批量 vs 大批量的权衡。
批量调优
16
压缩算法对比
gzip、snappy、lz4、zstd在延迟与压缩比上的表现。
压缩算法
17
确认机制(Acks)调优
acks=0、acks=1、acks=all对延迟与可靠性的影响。
Acks可靠性
18
刷盘策略调优
flush.interval.ms、flush.messages对持久化延迟的影响。
刷盘持久化
19
网络参数调优
TCP_NODELAY、socket.send.buffer.bytes、socket.receive.buffer.bytes。
网络TCP
20
操作系统参数调优
net.core.rmem_max、vm.dirty_ratio、swappiness。
OS内核
21
JVM调优(针对Kafka Broker)
堆内存设置、GC算法选择(G1 vs ZGC)、GC日志分析。
JVMGC
22
延迟毛刺排查
Full GC导致的Stop-The-World、Page Cache抖动、网卡中断均衡。
毛刺排查
23
慢消费者问题
消费能力不足导致的消息堆积与端到端延迟飙升。
消费堆积
24
Rebalance对延迟的影响
Consumer Group Rebalance期间的消费中断与延迟峰值。
Rebalance中断
25
跨机房/异地延迟压测
专线带宽、公网延迟、数据同步方案(MirrorMaker)的延迟表现。
跨机房同步
26
压测报告编写
报告结构(摘要、环境、方法、结果、结论)、图表规范、结论提炼。
报告规范
27
延迟SLA制定
如何根据压测结果制定合理的延迟SLA(如P99 < 10ms)。
SLA目标
28
持续集成中的延迟压测
集成到CI/CD流水线,每次发布前自动执行基准压测。
CI/CD自动化
29
生产环境延迟监控
基于压测经验设置告警阈值,延迟突增自动告警与根因分析。
监控告警
30
全链路延迟追踪
从交易发起到数据落地,结合OpenTelemetry实现端到端延迟追踪。
链路OpenTelemetry