使用Docker compose创建Couchbase集群
在本教程中,我们将了解Couchbase,一个云边缘服务器NoSQL数据库。然后,我们将讨论如何使用docker-compose建立3个节点的集群来扩展我们的应用程序。
前提条件
确保你已经安装了Docker Engine和Docker Compose。
教学目的
本教程向你介绍了couchbase和创建节点集群的概念。它可以帮助你弹性地扩展你的应用程序。
什么是couchbase?
Couchbase是一个服务器。它是一个NoSQL云文档导向数据库。这个数据库是CouchDB和Membase数据库的合并体。
它驻留在有多台机器的服务器集群中,这些机器有几个守护进程。这些进程提供来自客户端库的数据访问,以及管理功能。
为couchbase创建节点
在这一节中,我们要建立couchbase服务器节点,它将承载couchbase服务器的一个实例。这个过程需要以下几个步骤。
- 安装- 服务器已经安装,但没有运行。
- 开始--在这一步,节点服务器已经启动。在这一点上,你可以在控制台中进行各种操作。
- 初始化- 安装后,我们可以选择初始化我们的服务器。
- 配置- 你可以以管理员身份访问服务器。
让我们继续定义我们的docker compose文件内容。
# creating couchbase docker compose files
# define couchbase 1
couchbase1:
# get the image from the couchbase/server
image: couchbase/server
volumes:
- ~/couchbase/node1:/opt/couchbase/var
# define couchbase 2
couchbase2:
# get couchbase image for couchbase 2
image: couchbase/server
volumes:
- ~/couchbase/node2:/opt/couchbase/var
# define couchbase 3 and retrieve its image
couchbase3:
image: couchbase/server
volumes:
- ~/couchbase/node3:/opt/couchbase/var
# define our application ports
ports:
- 8091:8091
- 8092:8092
- 8093:8093
- 11210:11210
正如我们最初讨论的那样,我们正在建立一个3个节点的couchbase集群,因此在couch bases 1 to 3 above 。
现在在终端上运行以下内容。
# cd to project directory root and run the following command
docker-compose up -d
输出。
Pulling couchbase1 (couchbase/server:)...
latest: Pulling from couchbase/server
25fa05cd42bd: Pulling fs layer
de18b9aa36b2: Pulling fs layer
25fa05cd42bd: Downloading [===========> ] 6.368MB/26.7MB
de18b9aa36b2: Download complete
ec756bf45a97: Waiting
b216da4530f7: Waiting
ec756bf45a97: Downloading [> ] 4.294MB/467.3MB
46635a5df01b: Waiting
25fa05cd42bd: Downloading [====> ]
de18b9aa36b2: Downloading [==================> ] 2.123MB/5.647MBnload complete
19ca04716876: Download complete
1.966kB/1.966kB
e5fe9996db61: Waiting
1a4a55520189: Waiting
完成后,通过运行以下命令检查集群的状态。
docker ps
输出。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
75690285abdf couchbase/server "/entrypoint.sh couc…" 24 minutes ago Up 24 minutes 8091-8096/tcp, 11207/tcp, 11210-11211/tcp, 18091-18096/tcp couchbase_couchbase2_1
47f963ff40f7 couchbase/server "/entrypoint.sh couc…" 24 minutes ago Up 24 minutes 8094-8096/tcp, 0.0.0.0:8091-8093->8091-8093/tcp, :::8091-8093->8091-8093/tcp, 11207/tcp, 11211/tcp, 0.0.0.0:11210->11210/tcp, :::11210->11210/tcp, 18091-18096/tcp couchbase_couchbase3_1
6b38e3626f96 couchbase/server "/entrypoint.sh couc…" 24 minutes ago Up 24 minutes 8091-8096/tcp, 11207/tcp, 11210-11211/tcp, 18091-18096/tcp couchbase_couchbase1_1
你也可以运行下面的命令来检查状态。
docker-compose ps
输出。
Name Command State Ports
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
couchbase_couchbase1_1 /entrypoint.sh couchbase-s ... Up 11207/tcp, 11210/tcp, 11211/tcp, 18091/tcp, 18092/tcp, 18093/tcp, 18094/tcp, 18095/tcp, 18096/tcp, 8091/tcp, 8092/tcp, 8093/tcp,
8094/tcp, 8095/tcp, 8096/tcp
couchbase_couchbase2_1 /entrypoint.sh couchbase-s ... Up 11207/tcp, 11210/tcp, 11211/tcp, 18091/tcp, 18092/tcp, 18093/tcp, 18094/tcp, 18095/tcp, 18096/tcp, 8091/tcp, 8092/tcp, 8093/tcp,
8094/tcp, 8095/tcp, 8096/tcp
couchbase_couchbase3_1 /entrypoint.sh couchbase-s ... Up 11207/tcp, 0.0.0.0:11210->11210/tcp,:::11210->11210/tcp, 11211/tcp, 18091/tcp, 18092/tcp, 18093/tcp, 18094/tcp, 18095/tcp, 18096/tcp,
0.0.0.0:8091->8091/tcp,:::8091->8091/tcp, 0.0.0.0:8092->8092/tcp,:::8092->8092/tcp, 0.0.0.0:8093->8093/tcp,:::8093->8093/tcp, 8094/tcp,
8095/tcp, 8096/tcp
现在运行下面的命令来检查你的节点的日志。
docker-compose logs
输出。
# our nodes logs
Attaching to couchbase_couchbase2_1, couchbase_couchbase3_1, couchbase_couchbase1_1
couchbase1_1 | Starting Couchbase Server -- Web UI available at http://<ip>:8091
couchbase1_1 | and logs available in /opt/couchbase/var/lib/couchbase/logs
couchbase3_1 | Starting Couchbase Server -- Web UI available at http://<ip>:8091
couchbase3_1 | and logs available in /opt/couchbase/var/lib/couchbase/logs
couchbase2_1 | Starting Couchbase Server -- Web UI available at http://<ip>:8091
couchbase2_1 | and logs available in /opt/couchbase/var/lib/couchbase/logs
配置couchbase集群
在上一节中,我们暴露了设置集群时要使用的端口。
在你的浏览器中打开http://localhost:8091。
输出。

默认的集群视图。

设置你的couchbase账户,添加我们上面添加的集群,如下图所示。

重新平衡couchbase集群
为了均匀地分配数据,我们需要平衡我们的集群。
为了实现这一点,请浏览服务器选项卡或点击pending balance 选项卡,进入不平衡集群。

总结
在本教程中,我们已经讨论了couchbase集群。
首先,我们使用docker-compose为我们的应用程序创建服务。然后我们创建了3个节点的couchbase集群,并通过本地服务器上的网络门户访问它们。