向大家介绍Dragonboat,一个开源的Go实现的多组Raft库,项目已Apache2协议下开源。欢迎大家试用,也请大家点star鼓励:Dragonboat
通俗的讲,这是一个分布式共识协议库,应用可以用它把数据分布存储于多台机器上,只要过半数的机器在线,数据与服务便可在线。这避免了因个别机器当机或网络故障而造成数据、服务不可用,提高系统可用性。它提供称为Linearizability的强一致特性:多个副本的数据在外部看来更像使用单一副本,不会有仅提供最终一致性的系统常见且难缠的读到旧版数据的问题。
基于Raft协议的共识库已经应用于很多互联网后台系统。接触了很多用户以后,普遍反馈的当前应用障碍是缺乏一个可靠、高性能、且对共识协议本身接近全透明的开箱即用的通用实现。
优势
Dragonboat已经较好的解决所有上述应用障碍:
- 测试最完备的开源Raft库之一,所有的实现代码、测试工具、测试结果均已开源。
- 吞吐性能最好的开源Raft库,千万级每秒实现,平均单核即达每秒40万次以上写吞吐。
- 功能最完备的开源Raft库,不做特殊应用假设限制,安全可靠前提下最大程度确保通用性。
同时,Dragonboat的Go实现经过大量具体性能优化打磨,在当前高性能Go系统在行业内需求持续剧增的背景下,为准备入坑的同学踩坑带路提供参考。
功能与使用
Dragonboat实现了Raft论