天天看點

基于 NATS 消息系統的分布式 SQLite 引擎

作者:GitHub項目精選

大家好,又見面了,我是 GitHub 精選君!

今天要給大家推薦一個 GitHub 開源項目 maxpert/marmot,該項目在 GitHub 有超過 700k Star,用一句話介紹該項目就是:“A distributed SQLite replicator built on top of NATS”,一個基于 NATS 消息系統的分布式 SQLite 複制引擎。

基于 NATS 消息系統的分布式 SQLite 引擎

marmot 是一個分布式的 SQLite 的複制引擎,它的設計上是無主節點的,同時是保證最終的一緻性。當你的網站是基于 SQLite 建構的,同時又面臨很嚴重的讀壓力時,你可以依賴 marmot 很輕松的在多個節點間複制 SQLite 資料庫,進而確定網站的可擴充性,同時又保留了使用 SQLite 的便利性。

雖然目前開源上有多個 SQLite 分布式的解決方案,比如 rqlite、dqlite、LiteFS 等。但是 marmot 相比其他解決方案有如下的不同及優勢。

基于 NATS 消息系統的分布式 SQLite 引擎

總結一下就是 marmot 的無主設計確定了使用者使用上的便利性,不用關心節點是否隻讀或者隻寫,任何節點都可以直接的讀寫,而 marmot 不是通過強一緻性而是最終一緻性來保證以上特性的可行性。當然也會給 marmot 帶來一些限制,以下是具體的限制條件:

基于 NATS 消息系統的分布式 SQLite 引擎

以下是該項目 Star 趨勢圖(代表項目的活躍程度):

基于 NATS 消息系統的分布式 SQLite 引擎

如何安裝使用

使用如下指令即可在倉庫中建構 marmot:

go build -o build/marmot ./marmot.go           

建構完成後,可以在本機即可進行對應特性的測試,比如:

nats-server --jetstream
build/marmot -config config-1.toml -verbose
build/marmot -config config-2.toml -verbose           

其中需要確定 config-1.toml 和 config-2.toml 中配置的 SQLite DB 有相同的資料表的 schemas。

更多項目詳情請檢視如下連結。

開源項目位址:https://github.com/maxpert/marmot

開源項目作者:maxpert

以下是參與項目建設的所有成員:

基于 NATS 消息系統的分布式 SQLite 引擎

關注我們,一起探索有意思的開源項目。

繼續閱讀