打开网易新闻 查看精彩图片

2024年,伦敦QCon大会。一位曾在LMAX Exchange干了多年的工程师站上台,开口第一句:「零延迟不可能,但我们还在跑。」台下坐着的,是各大交易所的技术负责人。他们比谁都清楚——延迟每降1微秒,年利润可能多出八位数。

这位工程师叫Amir Langer,现在Adaptive公司做Aeron产品的核心开发。他这次要讲的东西,本质上是一场持续了两百年的「降延迟军备竞赛」。从驿马快信到光纤,再到现在的内存级消息队列,人类一直在和光速较劲。

金融交易的残酷等式:延迟=钱

金融交易的残酷等式:延迟=钱

Langer先扔了一组现场没人反驳的数据。某家做市商,系统延迟比别人快5微秒,买卖价差就能压得更窄。价差每窄0.1个基点,年化利润多出多少?他没说具体数字,但用了个让在场交易员都懂的词:「直接挂钩。」

更狠的是尾部延迟。平均延迟10微秒没用,你的订单可能撞上那1%的100微秒。Langer说:「我只关心我的订单走哪条路。」不可预测的延迟,等于不可预测的利润流失。

这解释了为什么高频交易公司愿意花几千万美元,只为把服务器搬近交易所几十米。光速每米3.3纳秒,听起来像笑话?一笔大单进出,3.3纳秒×2×每天百万笔,就是真金白银。

分离关注:把业务逻辑从I/O里「拔」出来

分离关注:把业务逻辑从I/O里「拔」出来

Langer的核心方法论,用他自己的话说,是「分离关注」(separation of concerns)。简单说:别让业务逻辑等I/O,别让I/O堵业务逻辑。

他举了Aeron和Disruptor两个工具。Disruptor是LMAX Exchange时期搞出来的无锁环形缓冲区,单线程能到百万级TPS。Aeron则是后来Adaptive做的,专注网络传输层面的零拷贝。两者配合,能把端到端延迟压到个位数微秒。

关键设计是「无等待」(wait-free)。不是「少等」,是「不等」。线程间用内存屏障(memory barrier)同步,而不是锁。锁会触发内核调度,内核调度就是微秒级延迟——在金融场景里,这是死刑。

打开网易新闻 查看精彩图片

Langer打了个比方:传统架构像餐厅服务员每点一道菜就跑一趟厨房。分离关注后,服务员只记单子,厨房按自己的节奏出菜。听起来慢?实际快得多,因为服务员从不站着干等。

共识协议的延迟陷阱:Raft不是银弹

共识协议的延迟陷阱:Raft不是银弹

分布式系统绕不开共识。Langer聊了Raft——比Paxos好懂,但延迟代价不小。Leader选举、日志复制、多数派确认,每一步都是网络往返。跨数据中心跑Raft,延迟直接跳到毫秒级。

他提到一个更激进的思路: replicated state machine(复制状态机)配合专用sequencer架构。不是让每个节点都参与共识,而是把排序逻辑抽出来,做单点决策、多点复制。牺牲一点容错模型的「纯粹性」,换取延迟数量级的下降。

这思路有争议。纯理论派会指出单点故障风险。Langer的回应很务实:「我们讨论的是mission critical系统,不是学术论文。」实际部署里,sequencer本身可以热备,故障切换在百微秒内完成——比Raft重选leader快两个数量级

硬件的尽头:当软件开始吃硅片

硬件的尽头:当软件开始吃硅片

演讲后半段,Langer把话题引向硬件。FPGA、DPU、甚至定制ASIC,金融公司都在试。但他泼了冷水:「硬件加速是最后的5%,前95%靠软件架构。」

Aeron的设计哲学是「cache-friendly」——数据结构设计成让CPU缓存命中最大化。一个缓存未命中,就是几十纳秒。高频交易的核心循环里,几十纳秒×循环次数,足够决定盈亏。

他还提到一个细节:现代CPU的分支预测失败,代价远高于人们想象。代码里一个if-else,预测错了就是流水线清空,十几条指令白跑。所以Aeron的代码路径尽量线性,「像火车轨道,不是十字路口。」

演讲最后,Langer放了张图:从1860年驿马快信的10天,到2024年Aeron的3微秒。两个数量级改进靠马和电报,接下来两个靠光纤和TCP优化,最后这个靠内存计算和无锁算法。曲线越来越平,但没人喊停。

台下有人问:「3微秒之后呢?」Langer没给答案。他说Adaptive正在实验新的sequencer架构,目标是把复制延迟再砍一半。至于能不能成,「明年QCon见。」