知识卡片
适应度函数驱动架构与机械同感
内容
像测试驱动开发一样,先把要达成的架构特征定义成适应度函数,再围绕它反复试验和推翻设计方案——这就是适应度函数驱动的架构。LMAX团队为达到每秒百万级交易的目标,先设定衡量交易速度的适应度函数,依次否掉多线程、Actor模型等方案,靠反复测量才发现真正瓶颈是上下文切换而非业务逻辑,最终用单线程加环形缓冲区达成目标。这种对系统每层实际开销了如指掌、能凭直觉判断哪里不对劲的能力,被称为”机械同感”。
参考来源
- 位置:《演进式架构(原书第2版)》第7章《构建可演进的架构》LMAX架构案例及「机械同感」小节(源文件:_epub-src/EPUB/xhtml/chapter11_0001.xhtml)
- 结论依据:原文明确LMAX团队用单线程和环形缓冲区达成高交易速度,并定义机械同感为理解每层开销的能力,直接支持卡片论点。
- 原始内容:"该方法使用单线程和环形缓冲区最终在单个线程上实现每秒超过六百万次的交易……机械同感指的是理解抽象层下面的各层以完全了解是什么驱动着例如性能等每一部分……机械同感需要适应度函数来定义期望目标"