rqlite,一個優秀的輕量級分佈式關係數據庫管理系統

Si 您正在尋找分佈式 DBMS 使用 SQLite 作為存儲引擎,讓我告訴你 rqlite 適合你,因為它允許從彼此同步的存儲中組織集群的工作。

從 rqlite 特徵來看, 突出了安裝、實施和維護的簡便性 分佈式存儲 容錯,有點類似於 etcd 和 Consul, 但它使用關係數據模型而不是鍵/值格式。

關於 rqlite

Raft 共識算法用於保持所有節點同步。 Rqlite 使用原始 SQLite 庫和 go-sqlite3 驅動程序,除此之外,它還執行一個處理客戶端請求的層,在其他節點中自我複制並監控就主節點的選擇達成的共識。

對數據庫的更改只能由被選為領導者的節點進行,但是有寫操作的連接可以被定向到集群的其他節點,它會返回leader的地址來重複請求(在下一個版本中,他們承諾添加自動轉發對leader的調用)。

主要關注的是容錯, 所以數據庫管理系統 僅在讀取操作中縮放, 寫操作是瓶頸。 可以從單個節點運行 rqlite 集群,這樣的解決方案可用於通過 HTTP 提供對 SQLite 的訪問,而無需提供容錯能力。

SQLite 數據 在每個節點中,它們不是存儲在文件中,而是存儲在內存中. 在實現 Raft 協議的層級,會記錄所有導致數據庫更改的 SQLite 命令。

此記錄用於復制(在查詢重播級別複製到其他節點)、啟動新節點時或從連接丟失中恢復。

為了減少記錄的大小,使用了自動打包,在指定的更改次數後開始並導致確認快照,新記錄開始(內存中的數據庫狀態與快照+累積更改日誌)。

從 rqlite 特性:

  • 易於集群部署,無需單獨安裝 SQLite。
  • 能夠快速獲取複製的 SQL 存儲。
  • 準備在生產項目中使用。
  • HTTP (S) API 的可用性,允許以批處理模式更新數據並確定集群的領導節點。 還提供了各種編程語言的命令行界面和客戶端庫。
  • 存在定義其他節點的服務,允許您動態創建集群。
  • 支持節點間數據交換的加密。
  • 能夠在閱讀時自定義檢查數據的相關性和一致性的級別。
  • 連接不參與共識確定的只讀節點的可選能力,用於增加集群對讀取操作的可擴展性。
  • 支持基於在單個請求中組合命令的本機形式的事務(不支持基於 BEGIN、COMMIT、ROLLBACK、SAVEPOINT 和 RELEASE 的事務)。

關於 rqlite 6.0

新版本 引入旨在提高集群可靠性的重大架構更改 通過改進將讀寫請求定向到正確的集群節點的過程。

現在 Rqlite 節點 可以復用多個邏輯連接 它們之間使用通過 Raft 協議在節點之間建立的 TCP 連接。 如果請求需要Leader節點的權限,但是發送到Secondary節點,Secondary節點可以確定Leader的地址並發送給客戶端,不需要進行Raft共識計算。

該更改還刪除了用於同步元數據的單獨組件,並刪除了 Raft 對狀態和元數據的單獨處理。

輔助節點現在僅在需要時才向領導節點發送請求,當需要找出領導節點的地址時。 API 提供了獲取集群中其他節點狀態信息的能力。 Sysdump 命令添加到 CLI。

終於 如果您有興趣了解更多信息 或者查閱安裝說明和用戶手冊,你可以做到 從下面的鏈接。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。