龙舟(Dragonboat)——纯Go实现的高性能多组Raft库

龙舟(Dragonboat)——纯Go实现的高性能多组Raft库

项目地址:https://gitcode.com/gh_mirrors/dr/dragonboat

dragonboat

项目简介

龙舟(Dragonboat)是一个由纯Go语言编写的高性能多组Raft一致性算法库。它旨在提供强大的故障容忍能力,保证在大多数服务器可用的情况下系统仍能正常运行,且始终保持数据一致性。利用Raft协议,即使部分服务器出现故障,也能确保服务的连续性和数据的完整性。

技术分析

龙舟库将所有与Raft相关的复杂技术问题处理得井然有序,使得开发者只需专注于自己的业务逻辑。其特色包括:

  • 多组支持:允许构建包含多个独立Raft分片的系统,每个分片都可以独立进行选举和复制日志。
  • 存储引擎定制:支持硬盘和内存状态机,并可以自定义Raft日志的存储和传输方式,易于集成最新的I/O技术。
  • 安全通信:内置TLS双向认证,适配高延迟环境下的低延迟需求。
  • 健康监控:基于Prometheus的健康指标收集和展示,方便系统运维。

此外,还提供了丰富、易用的Go语言API接口,帮助开发者轻松上手。

应用场景

龙舟适用于需要强一致性的分布式应用,例如数据库、键值存储、分布式锁服务等。它能够帮助开发以下类型的系统:

  • 微服务架构:在分布式环境中提供高可用性,确保服务之间的数据一致性。
  • 云存储平台:作为底层一致性算法,保证数据在不同节点间的同步和恢复。
  • 物联网(IoT):在设备间协调和同步状态,即使在网络不稳定或设备部分离线的情况下。

项目特点

  • 易用性:提供清晰的示例和详尽的文档,新用户能在短时间内掌握使用方法。
  • 高性能:在测试中,龙舟展现出出色的性能,即使是3节点系统,配合RocksDB作为存储引擎时,也能达到每秒9百万个16字节负载的写入速度。
  • 可扩展性:支持大量并发的活跃Raft分片,且在上千个空闲分片的情况下对总体吞吐量的影响较小。
  • 低延迟:99.9%的写操作在5毫秒内完成,读操作则更低,且在高负载下也有良好的Stop-the-World暂停时间控制。
  • 多平台支持:支持x86_64/Linux、x86_64/MacOS和ARM64/Linux,兼容Go 1.15及以上版本。

开始使用

要将龙舟添加到你的项目中,只需执行以下命令:

go get github.com/lni/dragonboat/v3@latest

或者获取开发版本(目前处于v4阶段),以使用更新的API:

go get github.com/lni/dragonboat/v4@master

示例中你可以找到如何使用龙舟的详细步骤,更多文档和常见问题解答,请参阅项目链接。

状态与贡献

龙舟已被广泛应用于生产环境并表现出稳定可靠的特性。欢迎通过提交问题或拉取请求参与到项目的改进和发展中来。该项目遵循Apache 2.0许可。

立即开始探索龙舟,体验纯粹的Go语言带来的强大一致性解决方案吧!

dragonboat A feature complete and high performance multi-group Raft library in Go. 项目地址: https://gitcode.com/gh_mirrors/dr/dragonboat

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金畏战Goddard

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值