Erlo

本机建立Consul数据中心

时间:2021-06-10   阅读:25次   来源:开源中国
页面报错
点赞

本机建立Consul数据中心

环境准备

注意:Windows 的路径分隔符是 ,Unix 和 Linux 是 /

  1. Windows10
  2. consul_1.9.6_windows_amd64
  3. 三个目录模拟3台机器:
    • consuldc1server1
    • consuldc1server2
    • consuldc1server3
  4. server 目录中的内容:
    • consuldc1server1configbasic.json (配置文件,即 -config-dir)
    • consuldc1server1data (数据目录,即 -data-dir)
    • consuldc1server1consul.exe (Consul 程序文件)
    • consuldc1server1bootstrap.ps1 (引导集群的PowerShell脚本,减少手动输入命令)
    • consuldc1server1join.ps1 (加入集群的PowerShell脚本,减少手动输入命令)
    • consuldc1server1members.ps1 (查看集群中结点信息的PowerShell脚本,减少手动输入命令)
  5. 端口表:
    • server1: 10000 + Consul 默认端口,如默认的 8500 会设置为 18500
    • server2: 20000 + Consul 默认端口,如默认的 8500 会设置为 28500
    • server3: 30000 + Consul 默认端口,如默认的 8500 会设置为 38500

配置文件和脚本内容

(一)consuldc1server1

1) .configbasic.json

{
  "datacenter": "dc1",
  "node_name": "server1",
  "bind_addr": "127.0.0.1",
  "ports": {
    "dns": 18600,        /*默认:8600*/
    "http": 18500,       /*默认:8500*/
    "https": 18501,      /*默认:8501,默认是禁用的*/
    "grpc": 18502,       /*默认:8502,默认是禁用的*/
    "serf_lan": 18301,   /*默认:8301*/
    "serf_wan": 18302,   /*默认:8302*/
    "server": 18300      /*默认:8300*/
  },
  "client_addr": "0.0.0.0"
}

2) .bootstrap.ps1

.consul.exe agent -server -bootstrap-expect 3 -config-dir=".config" -data-dir=".data" -ui

-server: 表示启动的是 Consul 的服务器
-bootstrap-expect 3: 表示集群最少需要 3 台服务器在运行才算有效
-config-dir=".config": 表示配置文件的目录为 ".config"
-data-dir=".data": 表示 Consul 的数据存储在 ".data" 目录中 -ui: 表示启用 Consul 的 Web UI ,通过浏览器访问 http://:8500/ui 可以看到 Web 界面

3) .join.ps1

我们计划用 server2 和 server3 加入到 server1,所以 server1 不需要 join.ps1 脚本

4) .members.ps1

.consul.exe members -http-addr="127.0.0.1:18500"

命令的意思:查看 server1 所在集群的结点信息,默认只有 server1 自身

-http-addr: 表示操作的服务器的HTTP端口地址,这里是 server1,所以是 127.0.0.1:18500

(二)consuldc1server2

1) .configbasic.json

{
  "datacenter": "dc1",
  "node_name": "server2",
  "bind_addr": "127.0.0.1",
  "ports": {
    "dns": 28600,        /*默认:8600*/
    "http": 28500,       /*默认:8500*/
    "https": 28501,      /*默认:8501,默认是禁用的*/
    "grpc": 28502,       /*默认:8502,默认是禁用的*/
    "serf_lan": 28301,   /*默认:8301*/
    "serf_wan": 28302,   /*默认:8302*/
    "server": 28300      /*默认:8300*/
  },
  "client_addr": "0.0.0.0"
}

2) .bootstrap.ps1

.consul.exe agent -server -bootstrap-expect 3 -config-dir=".config" -data-dir=".data" -ui

-server: 表示启动的是 Consul 的服务器
-bootstrap-expect 3: 表示集群最少需要 3 台服务器在运行才算有效
-config-dir=".config": 表示配置文件的目录为 ".config"
-data-dir=".data": 表示 Consul 的数据存储在 ".data" 目录中 -ui: 表示启用 Consul 的 Web UI ,通过浏览器访问 http://:8500/ui 可以看到 Web 界面

3) .join.ps1

# 命令格式:consul join [options] address ...

.consul.exe join -http-addr="127.0.0.1:28500" 127.0.0.1:18301 

命令的意思:server2 加入到 server1 中

-http-addr : 表示操作的服务器的HTTP端口地址,这里是 server2,所以是 127.0.0.1:28500
address : 表示当前被操作的服务器,想要加入到其中的服务器的地址,LAN或者WAN,比如 server2 加入到 server1,可以通过 consul members 命令查看 server 的地址,咱们这里是在本机上操作的,所以是 LAN(局域网)
... : 省略号的意思是可以同时加入多个集群

4) .members.ps1

.consul.exe members -http-addr="127.0.0.1:28500"

命令的意思:查看 server2 所在集群的结点信息,默认只有 server2 自身

-http-addr: 表示操作的服务器的HTTP端口地址,这里是 server2,所以是 127.0.0.1:28500

(三)consuldc1server2

1) .configbasic.json

{
  "datacenter": "dc1",
  "node_name": "server2",
  "bind_addr": "127.0.0.1",
  "ports": {
    "dns": 38600,        /*默认:8600*/
    "http": 38500,       /*默认:8500*/
    "https": 38501,      /*默认:8501,默认是禁用的*/
    "grpc": 38502,       /*默认:8502,默认是禁用的*/
    "serf_lan": 38301,   /*默认:8301*/
    "serf_wan": 38302,   /*默认:8302*/
    "server": 38300      /*默认:8300*/
  },
  "client_addr": "0.0.0.0"
}

2) .bootstrap.ps1

.consul.exe agent -server -bootstrap-expect 3 -config-dir=".config" -data-dir=".data" -ui

-server: 表示启动的是 Consul 的服务器
-bootstrap-expect 3: 表示集群最少需要 3 台服务器在运行才算有效
-config-dir=".config": 表示配置文件的目录为 ".config"
-data-dir=".data": 表示 Consul 的数据存储在 ".data" 目录中 -ui: 表示启用 Consul 的 Web UI ,通过浏览器访问 http://:8500/ui 可以看到 Web 界面

3) .join.ps1

# 命令格式:consul join [options] address ...

.consul.exe join -http-addr="127.0.0.1:38500" 127.0.0.1:18301 

命令的意思:server3 加入到 server1 中

-http-addr : 表示操作的服务器的HTTP端口地址,这里是 server3,所以是 127.0.0.1:38500
address : 表示当前被操作的服务器,想要加入到其中的服务器的地址,LAN或者WAN,比如 server3 加入到 server1,可以通过 consul members 命令查看 server 的地址,咱们这里是在本机上操作的,所以是 LAN(局域网)
... : 省略号的意思是可以同时加入多个集群

4) .members.ps1

.consul.exe members -http-addr="127.0.0.1:38500"

命令的意思:查看 server3 所在集群的结点信息,默认只有 server3 自身

-http-addr: 表示操作的服务器的HTTP端口地址,这里是 server3,所以是 127.0.0.1:38500

实验步骤

步骤1 - 分别启动 server1 、server2、server3

打开 3 个 PowerShell 终端,每个终端进入 1 个server目录,逐个运行目录中的 bootstrap.ps1 脚本。
启动后不要关闭终端。

步骤2 - 建立集群

打开 2 个新的 PowerShell 终端,分别进入 server2 和 server3 目录,并运行目录中的 join.ps1 脚本。

步骤3 - 验证集群

打开 1 个新的 PowerShell 终端,在任意一个 server 的目录中,运行 members.ps1 脚本,查看集群结点,如果有3个结点,那么就是建立成功了。

提交留言

评论留言

还没有评论留言,赶紧来抢楼吧~~

吐槽小黑屋()

* 这里是“吐槽小黑屋”,所有人可看,只保留当天信息。

  • Erlo吐槽

    Erlo.vip2021-06-25 21:54:21Hello、欢迎使用吐槽小黑屋,这就是个吐槽的地方。
  • 返回顶部

    给这篇文章打个标签吧~

    棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认