- sled 相关链接:有github 仓库、介绍页面、文档、激励经验页面、书店页面、支持 sled 页面,以及博客相关链接,还有github 星标、文档徽章、discord 链接、赞助信息。
- 概述内容:包含分布式等系统确定性测试的基本信息,[Jepsen]多次成功摧毁测试的分布式系统,说明当前构建分布式系统方式易出 bug,多数分布式数据系统因测试未模拟真实条件而崩溃,在分布式和消息系统中要注意消息混合等问题。
构建 Jepsen 证明系统步骤:
- 以可确定性测试的方式编写代码,确保应用依赖倒置原则,状态机可在各种网络传输上运行,能快速发现 race 条件。
- 构建模拟真实消息传递行为的模拟器,不这样做会构建出有很多 bug 的系统,可从[FoundationDB]等成功案例中学习。
- 编写代码围绕接收和响应消息的状态机,可实现 tick 方法处理周期性功能,将消息放入优先级队列按时间交付,对每个消息进行断言等操作,这就是“离散事件模拟”。
- 成功案例:[FoundationDB]因应用此技术基本“Jepsen 证明”,还有[Riak]、[Partisan]、[Dropbox]、航空航天和汽车工程师等也取得成功。
- 呼吁行动:停止只关注 Jepsen 的成功,用比 Jepsen 快数千倍的技术立即发现 bug,构建可测试 race 条件的系统,从错误中学习,若觉得文章有用可支持作者分享知识。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。