电子发烧友App

硬声App

0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示
创作
电子发烧友网>电子资料下载>电子资料>Dragonboat Go实现的多组Raft库

Dragonboat Go实现的多组Raft库

2022-06-22 | zip | 0.79 MB | 次下载 | 免费

资料介绍

授权协议 Apache-2.0
开发语言 C/C++ Google Go 汇编
软件类型 开源软件

软件简介

关于

Dragonboat 是一个高性能 Go 实现的多组 Raft 共识算法库,它同时提供 C++11 支持。Dragonboat 是目前 github.com 上速度最快的 Raft 开源实现。

Raft 这样的共识算法使得只要系统中的多数成员在线便可使得系统持续运行。比如,一个拥有 5 台服务器的 Raft 集群中即使有两台服务器故障依旧可以工作。它同时向客户端展现一个单机节点,始终提供强一致保证的数据访存。同时,所有在线的成员节点都可用来提供读操作,从而提供更高的读吞吐总和。

所有 Raft 相关的威廉希尔官方网站 难点都会由 Dragonboat 来承担,用户从而可以只关注他们各自的应用领域。Dragonboats 使用十分简便,详细的例程可使新用户在半小时内完全掌握它。

功能

  • 便于使用的可构建单组与多组 Raft 应用的 Go 和 C++ API

  • 功能完备的多组 Raft 协议的实现,同机支持数千 Raft 组

  • 完备的测试确保正确性,这包括 Jepsen 所带的 Knossos 强一致性检查,部分测试日志在此

  • 全流水线设计、TLS 支持,适合被部署于跨地域的高网络延时公网环境

  • 在中档硬件上即可获得约 300 万/秒的写或 1000 万/秒的强一致读的性能

  • 支持定制的 Raft log 存储与 Raft RPC 模块,可方便整合最新 IO 类威廉希尔官方网站 产品

  • 多 Raft 组由自带的 Drummer 服务器组件管理以获得良好的高可用

性能

Dragonboat 是目前 GitHub 网站上最快的开源多组 Raft 实现。

在三节点系统上,使用中端硬件,如 22 核 2.8Ghz 的 Intel 至强处理器和 NVME 固态硬盘,在 16 字节的荷载下,Dragonboat 可持续每秒 900 万次写或在 9:1 的高读写比场景下提供每秒 1100 万次的混合读写操作。高吞吐在跨地域分布环境依旧被保持,在使用更多的 clients 的情况下,在 RTT 为 30ms 时依旧能实现 200 万次每秒的 IO 操作。 

pYYBAGKn5-WANHAcAAESVP6hFy4637.jpg

每个服务器上可轻易承载数千 Raft 组。并发的活跃 Raft 组数量对吞吐有直接影响,而大量的闲置 Raft 组对系统性能并无巨大影响。 

poYBAGKn5-mAYKVOAADtksSOL3s701.jpg

下表是毫秒为单位的写延迟数据。Dragonboat 可以在处理每秒 800 万次写(16 字节荷载)的时候做到 P99 的写延迟小于 5ms。读延迟低于写延迟,因为用于 linearizable 读的 ReadIndex 协议无需对每个读请求做落盘写。

pYYBAGKn5-uAbcW9AACJrN3Gdto927.jpg

当测试单组性能时,Dragonboat 可以在 16 字节负载下持续每秒完成 125 万次写,此时平均写延迟是 1.3 毫秒,P99 写延迟为 2.6 毫秒。上述性能是在平均单机占用三个 2.8Ghz 的核心的情况下实现的。

即使在很高的系统负载下,Go 的 GC 所带来的 Stop-the-World 停顿也显著低于 1 毫秒。在即将发布的 Go 1.12 版中,GC 的 Stop-the-World 停顿时间将进一步大幅减低。Golang 的 runtime.ReadMemStats 显示即使在很高的系统负载下,GC 也仅占用了少于 1% 的可利用 CPU 时间。 

poYBAGKn5-yATPQmAADOeDfZf-E262.jpg

系统需求

  • x86_64 Linux 或 MacOS, Go 1.10, 1.11,支持 C++11 的近期版本 GCC 或 Clang

  • RocksDB 5.13.4 或更新的版本

开始使用

下载 Dragonboat 库至您的 Go 工作环境:

$ go get -u -d github.com/lni/dragonboat

如果 RocksDB 5.13.4 或者更新版本尚未安装:

$ cd $GOPATH/src/github.com/lni/dragonboat
$ make install-rocksdb-ull

上述命令将把 RocksDB 5.13.4 安装到 /usr/local/lib和/usr/local/include/rocksdb。如果 RocksDB 已经被安装,则可跳过此步。

运行内建测试以检查安装是否完成:

$ cd $GOPATH/src/github.com/lni/dragonboat
$ make dragonboat-test

编译您的应用:

  go build -v pkgname

上述步骤使用的是 Master branch 的代码。Master 是用于开发的非稳定 branch。生产环境请使用已发布版本。

(可选)安装 C++ Binding:

$ cd $GOPATH/src/github.com/lni/dragonboat
$ make binding
$ sudo make install-binding

(可选)运行 C++ binding测试(需 gtest 库):

$ cd $GOPATH/src/github.com/lni/dragonboat
$ make clean
$ make test-cppwrapper

中文例程

中文例程在这里

项目状态

Dragonboat 适用于生产环境。

开源许可协议

本项目以 Apache License Version 2.0 授权开源,请参考 LICENSE 文件。

 

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1C语言程序设计--通讯录系统
  2. 0.48 MB  |  5次下载  |  免费
  3. 2西门子PLC对M440变频器三段速控制
  4. 1.60 MB  |  5次下载  |  免费
  5. 3S7-1200PLC通过USS通信控制V20变频器的具体方法和步骤
  6. 0.23 MB  |  4次下载  |  免费
  7. 4智能电表及用电相关知识介绍
  8. 0.27 MB  |  3次下载  |  免费
  9. 5西门子S7-1200PLC与V20变频器的MODBUS RTU通信教程
  10. 0.19 MB  |  2次下载  |  免费
  11. 6STM32驱动W25Q64读写数据资料
  12. 9.93 MB  |  2次下载  |  免费
  13. 7电流传感器LAH50-P LEM规格书
  14. 0.31 MB  |  1次下载  |  免费
  15. 8智能小车大赛资料分享
  16. 4.85 MB  |  1次下载  |  1 积分

本月

  1. 1步进电机的原理与特性之基础理论
  2. 0.70 MB  |  25次下载  |  免费
  3. 2STM32驱动28BYJ-48步进电机
  4. 0.38 MB  |  15次下载  |  免费
  5. 3步进电机基础之定子相数的分类、结构、原理
  6. 1.30 MB  |  10次下载  |  免费
  7. 4Labview列表控件实现报警列表的功能
  8. 0.04 MB  |  8次下载  |  1 积分
  9. 5STM32中文参考手册
  10. 13.64 MB  |  8次下载  |  1 积分
  11. 6R2A20112ASP 数据表
  12. 265.9KB  |  8次下载  |  免费
  13. 7步进电机驱动器细分原理及细分设置表说明
  14. 0.20 MB  |  7次下载  |  免费
  15. 8基于STC89C52单片机的简易电梯系统的设计
  16. 0.58 MB  |  7次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935027次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537733次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  419992次下载  |  免费
  7. 4OrCAD10.5下载,OrCAD10.5中文版软件
  8. 817182  |  234249次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233009次下载  |  免费
  11. 6数据采集系统基础知识视频
  12. 16.3 MB  |  192989次下载  |  免费
  13. 7电路仿真软件multisim 10.0免费下载
  14. 340992  |  191120次下载  |  免费
  15. 8十天学会AVR单片机与C语言视频教程 下载
  16. 158M  |  183238次下载  |  免费