Docker Etcd
[TOC]
描述
etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。
etcd作为服务发现系统,有以下的特点
- 简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单
- 安全:支持SSL证书验证
- 快速:根据官方提供的benchmark数据,单实例支持每秒2k+读操作
- 可靠:采用raft算法,实现分布式系统数据的可用性和一致性
- etcd项目地址:https://github.com/coreos/etcd/
下载
$ docker search etcd
$ docker pull xxx/etcd
ETCD参数说明
- **data-dir:**指定节点的数据存储目录,这些数据包括节点ID,集群ID,集群初始化配置,Snapshot文件,若未指定—wal-dir,还会存储WAL文件;
- **wal-dir:**指定节点的was文件的存储目录,若指定了该参数,wal文件会和其他数据文件分开存储。
- name: 节点名称
- initial-advertise-peer-urls: 告知集群其他节点url.(
对于集群内提供服务的url
) - listen-peer-urls: 监听URL,用于与其他节点通讯
- advertise-client-urls: 告知客户端url, 也就是服务的url(
对外提供服务的utl
) - initial-cluster-token: 集群的ID
- initial-cluster: 集群中所有节点
然后进入其中一个 Docker 主机:
$ docker exec -it etcd bin/sh
执行下面命令(查看集群成员):
$ etcdctl member list