简介

etcd内部采用raft协议作为一致性算法,采用Go语言实现。

etcd是用于分布式系统中最关键数据的分布式可靠键值存储,特点:

  • 简单:安装配置简单,使用也很简单
  • 安全:支持TLS证书验证
  • 快速:根据官方提供的benchmark数据,单实例支持每秒10, 000次写入
  • 可靠:采用raft算法,实现分布式系统数据的可用性和一致性

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

使用yum安装

在CentOS上就对应的软件包

yum -y install etcd

目前罪行版本是3.3的版本。

启动服务和开机启动服务

systemctl start etcd
systemctl enable etcd

二进制安装

在官方release页面可以找到对应的安装脚本,只需要稍微修改一下即可

ETCD_VER=v3.4.4
# choose either URL
MIRROR_URL=https://mirrors.huaweicloud.com/etcd/

DOWNLOAD_URL=${MIRROR_URL}

rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz

rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test

curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz

tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1

rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz

mv  /tmp/etcd-download-test   /usr/local/etcd

/usr/local/etcd/etcd --version

/usr/local/etcd/etcdctl version

启动测试

# start a local etcd server
/usr/local/etcd/etcd

# write,read to etcd
/usr/local/etcd/etcdctl --endpoints=localhost:2379 put foo bar

/usr/local/etcd/etcdctl --endpoints=localhost:2379 get foo

docker部署

最方便的就是使用docker进行部署的,适合用于测试

docker pull quay.io/coreos/etcd

 docker run -d -p 2379:2379 -p 2380:2380 --name etcd  quay.io/coreos/etcd

测试

docker exec etcd /bin/sh -c "/usr/local/bin/etcd --version"

docker exec etcd /bin/sh -c "export ETCDCTL_API=3 ; /usr/local/bin/etcdctl version"

docker exec etcd /bin/sh -c "export ETCDCTL_API=3 ; /usr/local/bin/etcdctl endpoint health"

docker exec etcd /bin/sh -c "export ETCDCTL_API=3 ; /usr/local/bin/etcdctl put foo bar"

docker exec etcd /bin/sh -c "export ETCDCTL_API=3 ; /usr/local/bin/etcdctl get foo"