2019年加入eBay,一直在eBay的支付部门负责核心账务系统的开发和维护,现为eBay支付账务系统的团队负责人。eBay支付账务系统是一个服务于电商网站的分布式金融账务系统,兼具强一致性和高可用性的双重要求。此账务系统经历了分布式生产环境错综复杂问题的挑战,经过了多轮迭代和加强,现在保证强一致的情况下,系统的可用率高达6个9以上。本人在强一致和高可用方面积累的比较多的实战经验,期待与您分享。
eBay支付核心账务系统FAS(Financial Accounting System)作为电商网站中的账务系统,承担了一致性和可用性的双重要求。本次演讲将结合FAS系统在生产环境中遇到的真实问题,探讨强一致性分布式系统在实现高可用性方面所面临的挑战,并分享FAS系统的实践经验。通过深入分析这一议题,我们可以更好地理解如何平衡高可用性和强一致性之间的关系。
内容大纲
1. 背景介绍
2. 一致性和可用性的矛盾
3. FAS系统强一致性和基本的高可用实现
3.1 Raft协议简介
3.2 Raft协议的强一致性
3.3 Raft协议的高可用性
4. FAS系统面临的高可用挑战和解决方案
4.1 高可用挑战的分类
4.2 网络故障
4.2.1 客户端与集群领导者网络不通
4.2.2 解决方案 - 跟随者转发请求
4.2.3 跟随者转发请求的弊端
4.2.4 跟随者转发请求的优化
4.3 集群内部跟随者与领导者单向网络故障
4.3.1 解决方案 - PreVote机制
4.3.2 PreVote机制的弊端
4.3.3 单向网络故障的测试
4.4 集群在领导者选举时不可用
4.4.1 Raft集群选举的机制
4.4.2 FAS客户端重试机制
4.4.3 Leader Election Timeout
4.5 公司平台安全
4.5.1 密钥更新的解决方案
4.6 硬件故障与数据恢复
5. 可用性指标
6. 总结
7. 展望
听众收益
了解分布式系统一致性和可用性的矛盾,了解分布式系统共识算法的原理,了解解决高可用问题的一些常用的方法并可能应用到自己的系统中。