電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Dragonboat Go實(shí)現(xiàn)的多組Raft庫

Dragonboat Go實(shí)現(xiàn)的多組Raft庫

2022-06-22 | zip | 0.79 MB | 次下載 | 免費(fèi)

資料介紹

授權(quán)協(xié)議 Apache-2.0
開發(fā)語言 C/C++ Google Go 匯編
軟件類型 開源軟件

軟件簡介

關(guān)于

Dragonboat 是一個(gè)高性能 Go 實(shí)現(xiàn)的多組?Raft?共識(shí)算法庫,它同時(shí)提供?C++11?支持。Dragonboat 是目前 github.com 上速度最快的 Raft 開源實(shí)現(xiàn)。

Raft 這樣的共識(shí)算法使得只要系統(tǒng)中的多數(shù)成員在線便可使得系統(tǒng)持續(xù)運(yùn)行。比如,一個(gè)擁有 5 臺(tái)服務(wù)器的 Raft 集群中即使有兩臺(tái)服務(wù)器故障依舊可以工作。它同時(shí)向客戶端展現(xiàn)一個(gè)單機(jī)節(jié)點(diǎn),始終提供強(qiáng)一致保證的數(shù)據(jù)訪存。同時(shí),所有在線的成員節(jié)點(diǎn)都可用來提供讀操作,從而提供更高的讀吞吐總和。

所有 Raft 相關(guān)的技術(shù)難點(diǎn)都會(huì)由 Dragonboat 來承擔(dān),用戶從而可以只關(guān)注他們各自的應(yīng)用領(lǐng)域。Dragonboats 使用十分簡便,詳細(xì)的例程可使新用戶在半小時(shí)內(nèi)完全掌握它。

功能

  • 便于使用的可構(gòu)建單組與多組 Raft 應(yīng)用的 Go 和 C++ API

  • 功能完備的多組 Raft 協(xié)議的實(shí)現(xiàn),同機(jī)支持?jǐn)?shù)千 Raft 組

  • 完備的測(cè)試確保正確性,這包括?Jepsen?所帶的?Knossos?強(qiáng)一致性檢查,部分測(cè)試日志在此

  • 全流水線設(shè)計(jì)、TLS 支持,適合被部署于跨地域的高網(wǎng)絡(luò)延時(shí)公網(wǎng)環(huán)境

  • 在中檔硬件上即可獲得約 300 萬/秒的寫或 1000 萬/秒的強(qiáng)一致讀的性能

  • 支持定制的 Raft log 存儲(chǔ)與 Raft RPC 模塊,可方便整合最新 IO 類技術(shù)產(chǎn)品

  • 多 Raft 組由自帶的 Drummer 服務(wù)器組件管理以獲得良好的高可用

性能

Dragonboat 是目前 GitHub 網(wǎng)站上最快的開源多組 Raft 實(shí)現(xiàn)。

在三節(jié)點(diǎn)系統(tǒng)上,使用中端硬件,如 22 核 2.8Ghz 的 Intel 至強(qiáng)處理器和 NVME 固態(tài)硬盤,在 16 字節(jié)的荷載下,Dragonboat 可持續(xù)每秒 900 萬次寫或在 9:1 的高讀寫比場(chǎng)景下提供每秒 1100 萬次的混合讀寫操作。高吞吐在跨地域分布環(huán)境依舊被保持,在使用更多的 clients 的情況下,在 RTT 為 30ms 時(shí)依舊能實(shí)現(xiàn) 200 萬次每秒的 IO 操作。?

pYYBAGKn5-WANHAcAAESVP6hFy4637.jpg

每個(gè)服務(wù)器上可輕易承載數(shù)千 Raft 組。并發(fā)的活躍 Raft 組數(shù)量對(duì)吞吐有直接影響,而大量的閑置 Raft 組對(duì)系統(tǒng)性能并無巨大影響。?

poYBAGKn5-mAYKVOAADtksSOL3s701.jpg

下表是毫秒為單位的寫延遲數(shù)據(jù)。Dragonboat 可以在處理每秒 800 萬次寫(16 字節(jié)荷載)的時(shí)候做到 P99 的寫延遲小于 5ms。讀延遲低于寫延遲,因?yàn)橛糜?linearizable 讀的 ReadIndex 協(xié)議無需對(duì)每個(gè)讀請(qǐng)求做落盤寫。

pYYBAGKn5-uAbcW9AACJrN3Gdto927.jpg

當(dāng)測(cè)試單組性能時(shí),Dragonboat?可以在 16 字節(jié)負(fù)載下持續(xù)每秒完成 125 萬次寫,此時(shí)平均寫延遲是 1.3 毫秒,P99 寫延遲為 2.6 毫秒。上述性能是在平均單機(jī)占用三個(gè) 2.8Ghz 的核心的情況下實(shí)現(xiàn)的。

即使在很高的系統(tǒng)負(fù)載下,Go 的 GC 所帶來的 Stop-the-World 停頓也顯著低于 1 毫秒。在即將發(fā)布的 Go 1.12 版中,GC 的 Stop-the-World 停頓時(shí)間將進(jìn)一步大幅減低。Golang 的 runtime.ReadMemStats 顯示即使在很高的系統(tǒng)負(fù)載下,GC 也僅占用了少于 1% 的可利用 CPU 時(shí)間。?

poYBAGKn5-yATPQmAADOeDfZf-E262.jpg

系統(tǒng)需求

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

  • RocksDB?5.13.4 或更新的版本

開始使用

下載?Dragonboat?庫至您的 Go 工作環(huán)境:

$?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 已經(jīng)被安裝,則可跳過此步。

運(yùn)行內(nèi)建測(cè)試以檢查安裝是否完成:

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

編譯您的應(yīng)用:

??go?build?-v?pkgname

上述步驟使用的是 Master branch 的代碼。Master 是用于開發(fā)的非穩(wěn)定 branch。生產(chǎn)環(huán)境請(qǐng)使用已發(fā)布版本。

(可選)安裝 C++ Binding:

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

(可選)運(yùn)行 C++ binding測(cè)試(需 gtest 庫):

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

中文例程

中文例程在這里。

項(xiàng)目狀態(tài)

Dragonboat?適用于生產(chǎn)環(huán)境。

開源許可協(xié)議

本項(xiàng)目以 Apache License Version 2.0 授權(quán)開源,請(qǐng)參考 LICENSE 文件。

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1無鉛焊接的可靠性
  2. 1.03 MB   |  5次下載  |  1 積分
  3. 2GBT1094.11-2022電力變壓器第11部分:干式變壓器
  4. 14.12 MB   |  3次下載  |  免費(fèi)
  5. 3PT500齒輪傳動(dòng)動(dòng)力學(xué)綜合測(cè)試實(shí)驗(yàn)臺(tái)
  6. 0.16 MB   |  3次下載  |  免費(fèi)
  7. 4爬電距離和電氣間隙計(jì)算
  8. 0.75 MB   |  2次下載  |  1 積分
  9. 5SX1308應(yīng)用電路圖與SX1308升壓電路圖
  10. 0.18 MB   |  1次下載  |  免費(fèi)
  11. 6ADC參數(shù)單位換算
  12. 761.94KB   |  1次下載  |  免費(fèi)
  13. 7串口工具UartAssist5.0.exe
  14. 0.60 MB   |  1次下載  |  免費(fèi)
  15. 8UCC38C42 25瓦自諧振復(fù)位正激變換器
  16. 320.6KB   |  1次下載  |  免費(fèi)

本月

  1. 1ACDC變換器的原理圖免費(fèi)下載
  2. 0.26 MB   |  65次下載  |  免費(fèi)
  3. 2無刷電機(jī)控制方案設(shè)計(jì)合作
  4. 1.05 MB   |  22次下載  |  免費(fèi)
  5. 3美的超薄電磁爐TM-S1-09B主板原理圖
  6. 0.08 MB   |  20次下載  |  免費(fèi)
  7. 4純電動(dòng)汽?的主要部件及?作原理
  8. 5.76 MB   |  11次下載  |  5 積分
  9. 5GP328和GP88S對(duì)講機(jī)的維修實(shí)列資料合集免費(fèi)下載
  10. 0.03 MB   |  10次下載  |  10 積分
  11. 6舒爾SLX4無線話筒接收機(jī)原理圖:二次變頻超外差部分
  12. 0.27 MB   |  8次下載  |  免費(fèi)
  13. 7IP5385_DEMO開發(fā)資料
  14. 1.96 MB   |  7次下載  |  2 積分
  15. 8i.MX Linux開發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開發(fā)板
  16. 17.86 MB   |  6次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935115次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191363次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183329次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81580次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73805次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65985次下載  |  10 積分