資料介紹
軟件簡(jiǎn)介
關(guān)于
Dragonboat 是一個(gè)高性能 Go 實(shí)現(xiàn)的多組?Raft?共識(shí)算法庫(kù),它同時(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 使用十分簡(jiǎn)便,詳細(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 操作。?

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

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

當(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í)間。?

系統(tǒng)需求
開始使用
下載?Dragonboat?庫(kù)至您的 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 庫(kù)):
$?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 文件。
- LABVIEW NPOI庫(kù)文件下載 212次下載
- 朋也社區(qū)Go版本Go實(shí)現(xiàn)的社區(qū)系統(tǒng) 0次下載
- libsecurity-go物聯(lián)網(wǎng)應(yīng)用安全庫(kù)
- Awesome Go框架、庫(kù)和軟件清單
- altium designer元件庫(kù)下載 861次下載
- 適用于低壓大電流開關(guān)電源的多組變壓器設(shè)計(jì)
- 如何使用SSD數(shù)據(jù)庫(kù)負(fù)載實(shí)現(xiàn)SQL能耗感知模型 8次下載
- 學(xué)習(xí)Go語言PDF電子書免費(fèi)下載 12次下載
- 數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)應(yīng)該考慮什么?數(shù)據(jù)庫(kù)設(shè)計(jì)和物理存儲(chǔ)結(jié)構(gòu)這里概述 5次下載
- PIC32MX系列參考手冊(cè)之USB On-The-Go(OTG)
- PIC24F系列參考手冊(cè)之USB On-The-Go(OTG)
- AN1246中文手冊(cè)之如何在Microchip圖形庫(kù)中創(chuàng)建控件
- PIC32系列參考手冊(cè)之帶On-The-Go(OTG)功能的高速USB
- Pok mon Go服務(wù)器遭遇DDoS攻擊而宕機(jī) 0次下載
- USB On-the-Go Transceiver and
- go語言如何解決并發(fā)問題 850次閱讀
- 使用go語言實(shí)現(xiàn)一個(gè)grpc攔截器 1.2k次閱讀
- 如何在Go中給GORM模型添加枚舉類型 2.1k次閱讀
- 將Paxos和Raft統(tǒng)一為一個(gè)協(xié)議:Abstract-paxos 1k次閱讀
- 使用可計(jì)算SSD加速云原生數(shù)據(jù)庫(kù) 1.5k次閱讀
- mayfly-go主要功能簡(jiǎn)介 3k次閱讀
- 用基于gin框架的Go語言來實(shí)現(xiàn)手機(jī)號(hào)發(fā)送短信驗(yàn)證碼登錄 5.6k次閱讀
- Go并發(fā)模型的實(shí)現(xiàn)原理 2k次閱讀
- Go 1.18 正式發(fā)布后有哪些特性 3.8k次閱讀
- Rust相比Go的優(yōu)劣勢(shì) 4.6k次閱讀
- 基于TM320F2812數(shù)字信號(hào)處理器實(shí)現(xiàn)多組分氣體分析平臺(tái)的構(gòu)建 1.5k次閱讀
- GO語言簡(jiǎn)介!GO是理想的編程語言嗎? 4.9k次閱讀
- Go和Python,Erlang的語言對(duì)比分析和Go編程示例概述 8.3k次閱讀
- 網(wǎng)易有道CEO周楓推薦Go語言并介紹Go語言的3個(gè)優(yōu)點(diǎn) 5.6k次閱讀
- STM32標(biāo)準(zhǔn)庫(kù)改為HAL庫(kù)的程序實(shí)現(xiàn) 3.6w次閱讀
下載排行
本周
- 1矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費(fèi)
- 2HT81696H 內(nèi)置升壓的30W立體聲D類音頻功放數(shù)據(jù)手冊(cè)
- 1.21 MB | 1次下載 | 免費(fèi)
- 3HTA6863 3W超低噪聲超低功耗單聲道D類音頻功率放大器數(shù)據(jù)手冊(cè)
- 0.87 MB | 次下載 | 免費(fèi)
- 4南芯 Southchip SC8802C 充電控制器 規(guī)格書 Datasheet 佰祥電子
- 88.16 KB | 次下載 | 免費(fèi)
- 5矽力杰 Silergy SY7065 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
- 910.67 KB | 次下載 | 免費(fèi)
- 6矽力杰 Silergy SY7066 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
- 989.14 KB | 次下載 | 免費(fèi)
- 7WD6208A產(chǎn)品規(guī)格書
- 631.24 KB | 次下載 | 免費(fèi)
- 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數(shù)據(jù)手冊(cè)
- 1.64 MB | 次下載 | 2 積分
本月
- 1EMC PCB設(shè)計(jì)總結(jié)
- 0.33 MB | 12次下載 | 免費(fèi)
- 2PD取電芯片 ECP5702規(guī)格書
- 0.88 MB | 5次下載 | 免費(fèi)
- 3矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費(fèi)
- 4氮化鎵GaN FET/GaN HEMT 功率驅(qū)動(dòng)電路選型表
- 0.10 MB | 3次下載 | 免費(fèi)
- 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數(shù)據(jù)手冊(cè)
- 0.88 MB | 3次下載 | 免費(fèi)
- 6SY50655 用于高輸入電壓應(yīng)用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
- 1.01 MB | 3次下載 | 免費(fèi)
- 7怎么為半導(dǎo)體測(cè)試儀選擇精密放大器
- 0.65 MB | 2次下載 | 免費(fèi)
- 8SY52341 次級(jí)側(cè)同步整流英文手冊(cè)
- 0.94 MB | 2次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191469次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81606次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73832次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論