官网:https://etcd.io/
Github:https://github.com/etcd-io/etcd/releases
一. 关于ETCD
- etcd是一个开源的、分布式的键值对数据存储系统,提供共享配置、服务的注册和发现。
- 场景一:服务发现(Service Discovery)
- 场景二:消息发布与订阅
- 场景三:负载均衡
- 场景四:分布式通知与协调
- 场景五:分布式锁
- 场景六:分布式队列
- 场景七:集群监控与Leader竞选
二. 单机安装
下载ETCD: 选择对应的release版本,每个版本都有官方的Linux/Mac/Docker安装参考。
# 设置安装参数
ETCD_VER=v3.4.2
GITHUB_URL=https://github.com/etcd-io/etcd/releases/download
DOWNLOAD_URL=${GITHUB_URL}
# 下载安装
wget ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz
tar -zxvf ./etcd-v3.4.2-linux-amd64.tar.gz
mkdir /usr/local/etcd
cp ./etcd-v3.4.2-linux-amd64/etcd* /usr/local/etcd
# 设置环境变量
echo "export PATH=$PATH:/usr/local/etcd"
# 启动守护进程
nohup etcd \
--listen-client-urls http://0.0.0.0:2379 \
--advertise-client-urls http://0.0.0.0:2379 \
>/tmp/etcd.log 2>&1 &
# 测试安装
etcdctl --endpoints=localhost:2379 put foo "hello"
etcdctl --endpoints=localhost:2379 get foo
curl 0.0.0.0:2379/version
Mac版只需要将相应的linux关键词换成darwin
三. 搭建集群
1. 全局参数: 准备三台虚拟机(192.168.1.11
、192.168.1.12
、192.168.1.13
),执行相同的以下命令
TOKEN=token-XXX01 #此处须随节点修改
CLUSTER_STATE=new
NODE1=node1
NODE2=node2
NODE3=node3
HOST1=http://192.168.1.11
HOST2=http://192.168.1.12
HOST3=http://192.168.1.13
CLUSTER=${NODE1}=${HOST1}:2380,${NODE2}=${HOST2}:2380,${NODE3}=${HOST3}:2380
2. 指定变量: 按对应关系选择执行以下命令
NODE=${NODE1} && HOST=${HOST1} #节点1上执行
NODE=${NODE2} && HOST=${HOST2} #节点2上执行
NODE=${NODE3} && HOST=${HOST3} #节点3上执行
3. 启动服务: 都执行以下命令
nohup etcd --name ${NODE} \
--data-dir=/data/etcd/data.etcd \
--initial-advertise-peer-urls ${HOST}:2380 \
--listen-peer-urls ${HOST}:2380 \
--advertise-client-urls ${HOST}:2379 \
--listen-client-urls ${HOST}:2379 \
--initial-cluster ${CLUSTER} \
--initial-cluster-state ${CLUSTER_STATE} \
--initial-cluster-token ${TOKEN} \
>/tmp/etcd.log 2>&1 &
4. 验证服务: 在集群中的任意一台中执行
etcdctl --endpoints=192.168.1.11:2379,192.168.1.12:2379,192.168.1.13:2379 endpoint status -w table
参考:
https://www.jianshu.com/p/2966b6ef5d10
https://mritd.me/2016/09/01/Etcd-%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA/
https://blog.csdn.net/ShouTouDeXingFu/article/details/81167302
https://blog.csdn.net/bbwangj/article/details/82584988
https://www.liwenzhou.com/posts/Go/go_etcd/
http://www.iigrowing.cn/etcd_shi_yong_ru_men.html
https://www.jianshu.com/p/8e4bbe7e276c
https://segmentfault.com/a/1190000014045625
https://www.cnblogs.com/davygeek/p/7154780.html
https://www.cnblogs.com/zhenghongxin/p/7029173.html
https://blog.csdn.net/zhaominpro/article/details/82630528