如何在Linux上设置CockroachDB集群

时间:2020-03-05 15:29:28  来源:igfitidea点击:

CockroachDB是一个开放源代码项目,旨在可伸缩并具有故障恢复能力。
RDBMS和NoSQL的最佳功能在此产品中结合在一起。
我们可以从单个节点开始使用CockroachDB,并以简单的方式随着系统的增长添加更多节点。
我知道,现在我们想问一下如何将此数据库与应用程序集成。
CockroachDB基于PostgreSQL,因此我们可以使用任何客户端驱动程序或者受支持的ORM。

在本文中,我想向我们展示如何设置3个CockroachDB节点,并展示如何监视系统。

为此,我将使用三个CentOS系统,每个系统具有512 MB的内存和1个vCPU。

在开始安装CockroachDB之前,我们必须对系统进行一些更改。

首先,确保打开端口8080(用于Web UI)和26257(通信端口)。

如果我们使用UFW:

$sudo ufw allow 8080/tcp
$sudo ufw allow 26257/tcp

对于firewalld:

# 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或者超级用户(#)和用户($)的身份执行。
始终以root身份工作是一种不好的形式。

现在我们可以检查版本

$cockroach version

并得到类似:

Build Tag: v1.0.4
Build Time: 2016/09/10 10:33:34
Distribution: CCL
Platform: linux amd64
Go Version: go1.8.3
C Compiler: gcc 6.3.0
Build SHA-1: 5b757262d33d814bda1deb2af20151a1f7749df3
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

打开浏览器,然后转到“ http://nodeURLorHOSTNAME:8080”。
在我的情况下,它是“ http://192.168.1.6:8080”

单击“摘要”选项卡中的“查看节点列表”。
我们将连接在一起的所有系统共享所有数据库数据。

现在,我们可以使用群集来保留在所有节点中复制的数据。
如果任何节点在重新连接后由于某种原因脱机,它将获得脱机时所做的所有更改。

要从集群中删除节点,只需执行:

$cockroach quit

出于测试目的,我们可以通过ssh连接到任何节点并执行

$cockroach sql

这是一个SQL Shell,我们可以其中执行任何SQL命令。
执行后,我们应该会看到统计数据和图形中的更改。