Skip to content
survivorff's blog
Go back

在交易所做后端:我学到的 10 个反直觉的事

7 min read

开场

在传统互联网公司做了 7 年后端,我以为自己已经见过各种”高并发系统”。

转到交易所做了几年后,才发现交易系统是完全不同的物种。不是简单的”流量更大”,而是从设计思路到工程哲学都不一样。

这篇总结 10 个让我一度惊讶、后来认同的观点。如果你也在做交易相关系统,或者想去做,这些经验可能帮你少走弯路。

这篇讲的是工程哲学层面的差异。如果你想看具体踩过的技术坑,可以配合《做交易所 Web3 后端两年,多链扩展的三个血泪教训》一起读;转型路径本身我写在《从 Web2 转 Web3 后端:一个工程师的生存笔记》


1. 一致性比可用性更重要

互联网产品的默认逻辑:用户永远对,服务永远在

交易所的默认逻辑:宁可服务中断,不能数据错误

原因很简单:

实际案例:某次我们发现一个交易数据同步的 bug,可能导致少量用户的余额显示错了。第一反应不是”修补丁 + 继续运行”,而是紧急停机 10 分钟,确认所有受影响数据,一笔笔对账。

对传统后端来说这太”过度反应”,对交易系统来说这是常规操作。


2. 时间比你想的重要

互联网产品:接口 100ms 和 300ms 差别不大,用户感知不到。

交易系统:每一毫秒都是钱

举例:

所以交易系统的设计里有大量”提前准备”:


3. 幂等是底线,不是加分项

互联网产品:幂等是”好实践”,没做也能跑。

交易系统:任何不幂等的接口都是定时炸弹

为什么?

每一个写操作都必须有 request_id / nonce / idempotency_key,在数据库层面保证唯一性。这不是架构师的偏好,这是活命的基础。


4. 监控的粒度决定了你能不能睡觉

互联网产品:分钟级监控就够了。

交易系统:秒级是基础,毫秒级才是真正需要的

我们的核心指标:

监控系统本身的延迟都有监控。一切能量化的都要量化。

没有极致的监控,你永远不知道下一次事故会发生在哪。


5. 回滚策略比发布策略更重要

互联网产品:发布失败 → 快速回滚。

交易系统:不能回滚的发布永远不发

原因:

这意味着发布节奏会慢得多。很多”简单的”优化都因为”不能安全回滚”而放弃。

对追求快速迭代的人来说这是折磨。但对资金安全来说这是必须。


6. 所有异常都要 panic

互联网产品:出异常 → 打个 log,继续处理。

交易系统:任何意外都 panic(或类似机制)

为什么?

假设一笔交易,某个中间步骤返回了意外的结果。两种处理方式:

在金钱面前,宁可错杀一千,不可放过一个

这和传统后端”容错”思维完全相反,但是正确的。


7. 冷备不等于高可用

互联网产品:主库挂了 → 切到从库 → 几分钟恢复。

交易系统:切换过程中的每一秒损失都不能接受

所以交易系统的高可用是:

做一个真正 5 个 9 可用性的交易系统,成本是普通互联网系统的 10 倍以上。


8. 测试要比代码多

互联网产品:代码和测试 1:1 甚至测试少。

交易系统:测试代码至少是业务代码的 3-5 倍

为什么?

没有足够的测试,你根本不敢改代码。


9. 限流不是最后的防线,是第一道

互联网产品:业务写好 → 最后在网关加个限流。

交易系统:每一层都有限流

没有充分的限流,一个 bug 或一次攻击就能把系统拖垮。


10. 你的最大风险不是技术问题,是人

这是最反直觉的一条。

在传统后端,最大的风险通常是技术问题:bug、硬件故障、流量突增。

在交易系统,最大的风险是人

所以交易系统的安全设计:

技术防护相对容易,防人的漏洞才是最难的


结论

交易所的工程文化可以总结成一句话:

宁可慢一点、贵一点,也不能出任何不可恢复的错。

这和互联网”快速迭代、容忍小错”的文化完全不同。

对于习惯了互联网的工程师来说,转过来会有一段痛苦的适应期。但一旦你理解并内化了这种工程哲学,你做任何系统的标准都会高一个层次

这也是为什么很多从交易所出来的工程师,再做互联网反而觉得”太轻松了”。


对你的建议

如果你有机会进入交易系统或想进入:

  1. 抛弃”用户永远对”的思维 —— 在金融系统里,数据第一
  2. 习惯更慢的发布节奏 —— 每次上线都要慎之又慎
  3. 学会看监控 —— 这是你的”感官”,没它就是瞎子
  4. 理解”金钱的重量” —— 你的代码管着真金白银

这些经验不只对交易所有用,对任何需要高可靠的系统都适用。


延伸阅读


如果这篇对你有启发,订阅关注 X,我会继续写工程实战内容。


Share this post on:

Previous Post
开发者的 AI Prompt 模式库:我每天都在用的 15 个模板
Next Post
我用 AI 给自己写了个找工作雷达 job-radar

继续阅读

如果觉得有用

订阅更新,每次发新文章第一时间收到。不发广告、不搞推销。