如何使用Docker compose创建Couchbase集群

212 阅读5分钟

使用Docker compose创建Couchbase集群

在本教程中,我们将了解Couchbase,一个云边缘服务器NoSQL数据库。然后,我们将讨论如何使用docker-compose建立3个节点的集群来扩展我们的应用程序。

前提条件

确保你已经安装了Docker Engine和Docker Compose。

教学目的

本教程向你介绍了couchbase和创建节点集群的概念。它可以帮助你弹性地扩展你的应用程序。

什么是couchbase?

Couchbase是一个服务器。它是一个NoSQL云文档导向数据库。这个数据库是CouchDBMembase数据库的合并体。

它驻留在有多台机器的服务器集群中,这些机器有几个守护进程。这些进程提供来自客户端库的数据访问,以及管理功能。

为couchbase创建节点

在这一节中,我们要建立couchbase服务器节点,它将承载couchbase服务器的一个实例。这个过程需要以下几个步骤。

  1. 安装- 服务器已经安装,但没有运行。
  2. 开始--在这一步,节点服务器已经启动。在这一点上,你可以在控制台中进行各种操作。
  3. 初始化- 安装后,我们可以选择初始化我们的服务器。
  4. 配置- 你可以以管理员身份访问服务器。

让我们继续定义我们的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

输出。

Home Page

默认的集群视图。

default view

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

settings

重新平衡couchbase集群

为了均匀地分配数据,我们需要平衡我们的集群。

为了实现这一点,请浏览服务器选项卡或点击pending balance 选项卡,进入不平衡集群。

rebalance

总结

在本教程中,我们已经讨论了couchbase集群。

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