第一章 Etcd



序言

etcd 默认将数据存放到当前路径的 default.etcd/ 目录下

 http://localhost:2380 和集群中其他节点通信

 http://localhost:2379 提供 HTTP API 服务,供客户端交互

该节点的名称默认为 default

snapshot count 为 10000,后面会说明这个配置的作用

集群和每个节点都会生成一个 uuid

启动的时候,会运行 raft,选举出 leader

2. 集群安装

2.1 启动方案:

    根据是否可以提前知道节点的 ip,有几种不同的

① 静态配置:在启动 etcd server 的时候,通过 --initial-cluster 参数配置好所有的节点信息

① 使用已有的 etcd cluster 来注册和启动,比如官方提供的 discovery.etcd.io

② 使用 DNS 启动,

2. 2 常用配置参数

 

Ø --name :节点名称,默认为 default ,在集群中应该唯一

Ø --data-dir :数据保存的路径,默认为 ${name}.etcd

Ø --snapshot-count :指定数量事务被提交时,触发截取快照保存

Ø --heartbeat-interval :leader 送心跳间隔。默认值是 100ms

Ø --eletion-timeout :超时选举时间,默认为 1000 ms

Ø --listen-peer-urls 同伴地址,比如 http://ip:port ,有多个逗号分隔。所有节点都能够访问, 所以不要用 localhost

Ø --listen-client-urls :对外提供的地址: http://ip:2379,http://127.0.0.1:2379 ,客户端通过这个链接etcd

Ø --advertise-client-urls :对外公告该节点客户端监听地址,这个会告诉集群中其他节点

Ø --initial-advertise-peer-urls :该节点同伴监听地址,这个值会告诉集群中其他节点

Ø --initial-cluster :集群中所有节点的信息格式为 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http://127.0.0.1:    22380,infra3=http://127.0.0.1:32380'。这里的 infra 是节点的 --name 指定的名字;后面的 ip1:2380  --listen-peer-urls 指定的值

Ø --initial-cluster-state :新建集群值为 new 存在的集群值为 existing

Ø --initial-cluster-token :创建集群的token,每个集群唯一。要重新创建集群,即使配置和之前一样,也会生成新的集群和节点 uuid否则会导致多个集群冲突,造成错误

--init 开头配置在 bootstrap 集群会使用,节点的重启被忽略。

 

 

3. 数据增删查改

 

4. 比较更新

在分布式环境中,需要解决多个客户端的竞争问题etcd 提供了原子操作 CompareAndSwap (CAS),通过这个可以实现分布式锁。

"action": "compareAndSwap",

 

4.1 支持的条件包括

① preValue :检查 key 之前的值是否和客户端提供的一致

② prevIndex :检查 key 之前的 modifiedIndex 是否和客户端提供的一致

③ prevExist :检查 key 是否已经存在。存在就执行更新操作不存在执行 create 操作


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值