当前位置:   article > 正文

Windows系统下安装Etcd集群

Windows系统下安装Etcd集群

前言

最近在研究etcd,用于解决一个服务的主备切换的问题,工欲善其事必先利其器,先把本地所需的所有环境搭建好。涉及到本地Windows环境的etcd集群的搭建,以及etcd可视化web工具etcd-viewer的搭建。etcd使用go语言开发的,在Windows平台上最终编译成了可执行的exe文件,部署非常容易。

安装etcd集群

下载etcd后,选择对应的版本下载即可,Windows版本解压后文件目录如下:

在同级目录分别创建如下三个启动脚本:

start01.bat

1

2

3

4

5

6

7

8

9

10

11

.\etcd.exe --name etcd01 ^

--data-dir .\data\etcd01 ^

--advertise-client-urls http://127.0.0.1:2379 ^

--listen-client-urls http://127.0.0.1:2379 ^

--listen-peer-urls http://127.0.0.1:2380 ^

--initial-advertise-peer-urls http://127.0.0.1:2380 ^

--initial-cluster-token etcd-cluster-1 ^

--initial-cluster etcd01=http://127.0.0.1:2380,etcd02=http://127.0.0.1:2381,etcd03=http://127.0.0.1:2382 ^

--initial-cluster-state new

pause

start02.bat

1

2

3

4

5

6

7

8

9

10

11

.\etcd.exe --name etcd02 ^

--data-dir .\data\etcd02 ^

--advertise-client-urls http://127.0.0.1:3379 ^

--listen-client-urls http://127.0.0.1:3379 ^

--listen-peer-urls http://127.0.0.1:2381 ^

--initial-advertise-peer-urls http://127.0.0.1:2381 ^

--initial-cluster-token etcd-cluster-1 ^

--initial-cluster etcd01=http://127.0.0.1:2380,etcd02=http://127.0.0.1:2381,etcd03=http://127.0.0.1:2382 ^

--initial-cluster-state new

pause

start03.bat

1

2

3

4

5

6

7

8

9

10

11

.\etcd.exe --name etcd03 ^

--data-dir .\data\etcd03 ^

--advertise-client-urls http://127.0.0.1:4379 ^

--listen-client-urls http://127.0.0.1:4379 ^

--listen-peer-urls http://127.0.0.1:2382 ^

--initial-advertise-peer-urls http://127.0.0.1:2382 ^

--initial-cluster-token etcd-cluster-1 ^

--initial-cluster etcd01=http://127.0.0.1:2380,etcd02=http://127.0.0.1:2381,etcd03=http://127.0.0.1:2382 ^

--initial-cluster-state new

pause

然后在同级目录下创建好对应的data-dir,如/data/etcd01、/data/etcd02、/data/etcd03,创建好后,依次启动start01.bat、start02.bat、start03.bat三个脚本,然后使用etcdctl.exe member list,当输出如下信息时,代表集群创建成功了。

1

2

3

4

E:\runtime\etcd-v3.3.12-windows-amd64>etcdctl.exe member list

19ac17627e3e396f: name=etcd03 peerURLs=http://127.0.0.1:2382 clientURLs=http://127.0.0.1:4379 isLeader=false

bf9071f4639c75cc: name=etcd01 peerURLs=http://127.0.0.1:2380 clientURLs=http://127.0.0.1:2379 isLeader=true

e7b968b9fb1bc003: name=etcd02 peerURLs=http://127.0.0.1:2381 clientURLs=http://127.0.0.1:3379 isLeader=false

如果出现如下的信息,代表可能etcd启动过程阻塞住了,只要在cmd窗口里按下回车键就ok了

1

2

3

E:\runtime\etcd-v3.3.12-windows-amd64>etcdctl.exe member list

client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 127.0.0.1:4001: connectex: No connection could be made because the target machine actively refused it.

; error #1: client: endpoint http://127.0.0.1:2379 exceeded header timeout

安装etcd-viewer

etcd-viewer是一款同时支持v2和v3版本接口的etcd可视化web服务,使用java开发,底层基于jetcd和Apache cxf。etcd-viewer也是etcd官方推荐的一个可视化组件

项目地址:https://github.com/nikfoundas/etcd-viewer

1、etcd-viewer已经提供了docker镜像,并上传到了中央仓库,使用如下docker脚本可以直接运行:

1

docker run -d -p 8080:8080 nikfoundas/etcd-viewer

2、或者下载源码后,导入到IDEA,使用mvn jetty:run运行

3、打包成war包后,丢到tomcat中运行

安装成功后,界面如下

etcd集群启动参数说明


参数

使用说明

--name etcd0本member的名字

--initial-advertise-peer-urls http://192.168.2.55:2380

其他member使用,其他member通过该地址与本member交互信息。一定要保证从其他member能可访问该地址。静态配置方式下,该参数的value一定要同时在--initial-cluster参数中存在。

memberID的生成受--initial-cluster-token和--initial-advertise-peer-urls影响。

--listen-peer-urls  http://0.0.0.0:2380

本member侧使用,用于监听其他member发送信息的地址。ip为全0代表监听本member侧所有接口

--listen-client-urls http://0.0.0.0:2379

本member侧使用,用于监听etcd客户发送信息的地址。ip为全0代表监听本member侧所有接口

--advertise-client-urls http://192.168.2.55:2379

etcd客户使用,客户通过该地址与本member交互信息。一定要保证从客户侧能可访问该地址

--initial-cluster-token etcd-cluster-2

用于区分不同集群。本地如有多个集群要设为不同。 

--initial-cluster etcd0=http://192.168.2.55:2380,

etcd1=http://192.168.2.54:2380

,etcd2=http://192.168.2.56:2380

本member侧使用。描述集群中所有节点的信息,本member根据此信息去联系其他member。

memberID的生成受--initial-cluster-token和--initial-advertise-peer-urls影响。

--initial-cluster-state new

用于指示本次是否为新建集群。有两个取值new和existing。如果填为existing,则该member启动时会尝试与其他member交互。

集群初次建立时,要填为new,经尝试最后一个节点填existing也正常,其他节点不能填为existing。

集群运行过程中,一个member故障后恢复时填为existing,经尝试填为new也正常。

-data-dir

指定节点的数据存储目录,这些数据包括节点ID,集群ID,集群初始化配置,Snapshot文件,若未指定-wal-dir,还会存储WAL文件;如果不指定会用缺省目录。

-discovery http://192.168.1.163:20003/v2/keys/discovery/78b12ad7-2c1d-40db-9416-3727baf686cb

用于自发现模式下,指定第三方etcd上key地址,要建立的集群各member都会向其注册自己的地址。

  • —data-dir 指定节点的数据存储目录,这些数据包括节点ID,集群ID,集群初始化配置,Snapshot文件,若未指定—wal-dir,还会存储WAL文件;
  • —wal-dir 指定节点的was文件的存储目录,若指定了该参数,wal文件会和其他数据文件分开存储。
  • —name 节点名称
  • —initial-advertise-peer-urls 告知集群其他节点url.
  • — listen-peer-urls 监听URL,用于与其他节点通讯
  • — advertise-client-urls 告知客户端url, 也就是服务的url
  • — initial-cluster-token 集群的ID
  • — initial-cluster 集群中所有节点

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/948841
推荐阅读
相关标签
  

闽ICP备14008679号