CockroachDB 是一個開源項目,旨在具有可擴展性和故障恢復能力。 該產品結合了 RDBMS 和 NoSQL 的最佳特性。 您可以從單個節點開始使用 CockroachDB,並隨著系統的增長以一種簡單的方式添加更多節點。 我知道現在您想問如何將此數據庫與您的應用程序集成。 CockroachDB 基於 PostgreSQL,因此您可以使用任何客戶端驅動程序或受支持的 ORM。
在本文中,我想向您展示如何設置 CockroachDB 的 3 個節點,並展示如何監控您的系統。
為此,我將使用三個 CentOS 系統,每個系統具有 512 MB 的 RAM 和 1 個 vCPU。
在我們開始安裝 CockroachDB 之前,我們必須對我們的系統進行一些更改。
首先,確保端口 8080(用於 Web UI)和 26257(通信端口)已打開。
如果您使用 UFW:
$ sudo ufw allow 8080/tcp
$ sudo ufw allow 26257/tcp
對於防火牆:
# firewall-cmd --permanent --zone=public –-add-port=8080/tcp
# firewall-cmd --permanent --zone=public –-add-port=26257/tcp
# firewall-cmd –-reload
筆記: 如果您打算在生產中使用它,您將需要設置 NTP 服務器並使用具有超級用戶權限的非 root 用戶。
現在我們可以開始安裝了。 對於所有主機,我們必須下載最新版本的 CockroachDB,解壓縮並將二進製文件移動到 /usr/local/bin。
$ wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz?s=do
tar -xf cockroach-latest.linux-amd64.tgz?s=do --strip=1 cockroach-latest.linux-amd64/cockroach
# mv cockroach /usr/local/bin
請注意,命令以超級用戶 (#) 和用戶 ($) 身份執行。 一直以 root 身份工作是一種糟糕的形式。
現在我們可以檢查版本
$ cockroach version
並得到類似的東西:
Build Tag: v1.0.4
Build Time: 2017/09/10 10:33:34
Distribution: CCL
Platform: linux amd64
Go Version: go1.8.3
C Compiler: gcc 6.3.0
Build SHA-1: 5b757262d33d814bda1deb2af20161a1f7749df3
Build Type: release
似乎它正在工作,我們可以啟動我們的集群。 在第一個節點上執行:
$ cockroach start –-insecure –-background –-advertise-host=192.168.1.6
關於標誌的一點:
- –insecure 標誌將在沒有 SSL 的情況下運行節點。 否則,您必須使用指向有效證書的標誌 –certs-dir。
- –background 標誌用於在後台模式下運行和釋放命令行。
- –advertise-host 標誌是節點的 IP 地址或主機名。
現在我們需要將所有其他節點連接到該主機。 在節點二上執行
$ cockroach start –-insecure –-background --advertise-host=192.168.1.80 --join=192.168.1.6:26257
在節點三上執行:
$ cockroach start –-insecure –-background --advertise-host=192.168.1.147 --join=192.168.1.6:26257
筆記: 請確保您已更改 –advertise-host 和 –join IP
打開瀏覽器並轉到“https://nodeURLorHOSTNAME:8080”。 就我而言,它是“https://192.168.1.6:8080”
單擊“摘要”選項卡中的“查看節點列表”。 您將連接在一起共享所有數據庫數據的所有系統。
就這樣。 現在,您可以使用集群來保存在所有節點中復制的數據。 如果任何節點在重新連接後因任何原因脫機,它將獲得脫機時所做的所有更改。
要從集群中刪除節點,只需執行:
$ cockroach quit
出於測試目的,您可以通過 ssh 連接到任何節點並執行
$ cockroach sql
這是一個 SQL shell,您可以在其中執行任何 SQL 命令。 執行後,您應該會看到統計數據和圖表的變化。 在執行之前,我建議閱讀有關 CockroachDB SQL 方言的內容 官方網站. 要添加更多節點,您可以使用節點二和三的步驟,並輕鬆地水平擴展系統。