我是靠谱客的博主 高贵滑板,最近开发中收集的这篇文章主要介绍用 docker-compose搭建Etcd集群,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Etcd 高可以的分布式 key-value 系统,是 CoreOS 团队发起的一个开源项目(Go语言实现的),简单直接的应用就是配置中心
etcd 和 ZooKeeper/Consul 非常相似,都提供了类似的功能,以及 REST API 的访问操作,具有以下特点:
1.简单:安装和使用简单,提供了 REST API 进行操作交互
2. 安全:支持 HTTPS SSL 证书
3. 快速:支持并发 10 k/s 的读写操作
4.可靠:采用 raft 算法,实现分布式系统数据的可用性和一致性

拉取镜像:

docker pull quay.io/coreos/etcd

编写 etcd.yml 文件:

version: '2'
networks:
  byfn:

services:
  etcd1:
    image: quay.io/coreos/etcd
    container_name: etcd1
    command: etcd -name etcd1 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster -initial-cluster "etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380" -initial-cluster-state new
    ports:
      - 2379
      - 2380
    networks:
      - byfn
 
  etcd2:
    image: quay.io/coreos/etcd
    container_name: etcd2
    command: etcd -name etcd2 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster -initial-cluster "etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380" -initial-cluster-state new
    ports:
      - 2379
      - 2380
    networks:
      - byfn
  
  etcd3:
    image: quay.io/coreos/etcd
    container_name: etcd3
    command: etcd -name etcd3 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster -initial-cluster "etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380" -initial-cluster-state new
    ports:
      - 2379
      - 2380
    networks:
      - byfn

参数介绍:

1. data-dir 指定节点的数据存储目录,这些数据包括节点ID,集群ID,集群初始化配置,Snapshot文件,若未指定—wal-dir,还会存储WAL文件;
2. wal-dir 指定节点的was文件的存储目录,若指定了该参数,wal文件会和其他数据文件分开存储。
**3.**name 节点名称
4. initial-advertise-peer-urls 告知集群其他节点url.
5. listen-peer-urls 监听URL,用于与其他节点通讯
6. advertise-client-urls 告知客户端url, 也就是服务的url
7. initial-cluster-token 集群的ID
8. initial-cluster 集群中所有节点
9. initial-cluster-state 监听客户端状态
10. listen-client-urls 监听客户端地址
11. initial-cluster-state new 初始化集群 为新节点

启动服务:

docker-compose -f etcd.yml up

在这里插入图片描述
在这里插入图片描述
验证 3 节点返回的数据:
在这里插入图片描述
测试节点 1 新增数据,节点 2 获取:

curl -L http://127.0.0.1:32771/v2/keys/etcd -XPUT -d value="Hello etcd1"
curl -L http://127.0.0.1:32773/v2/keys/etc
curl -L http://127.0.0.1:32769/v2/keys/etc

在这里插入图片描述

最后

以上就是高贵滑板为你收集整理的用 docker-compose搭建Etcd集群的全部内容,希望文章能够帮你解决用 docker-compose搭建Etcd集群所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部