etcd相關總結

etcd 

sudo wget https://github.com/etcd-io/etcd/releases/download/v3.2.26/etcd-v3.2.26-linux-amd64.tar.gz

sudo tar -xzvf ./etcd-v3.2.26-linux-amd64.tar.gz

sudo mkdir -p /etc/etcd
sudo vi /etc/etcd/conf.yml

在環境變量中

============================================
name: etcd-1
data-dir: /usr/local/bin/etcd-v3.2.26-linux-amd64/data
listen-client-urls: http://192.168.13.128:2379,http://127.0.0.1:2379
advertise-client-urls: http://192.168.13.128:2379,http://127.0.0.1:2379
listen-peer-urls: http://192.168.13.128:2380
initial-advertise-peer-urls: http://192.168.13.128:2380
initial-cluster: etcd-1=http://192.168.13.128:2380,etcd-2=http://192.168.13.129:2380,etcd-3=http://192.168.13.130:2380
initial-cluster-token: etcd-cluster-token
initial-cluster-state: new


name: etcd-2
data-dir: /usr/local/bin/etcd-v3.2.26-linux-amd64/data
listen-client-urls: http://192.168.13.129:2379,http://127.0.0.1:2379
advertise-client-urls: http://192.168.13.129:2379,http://127.0.0.1:2379
listen-peer-urls: http://192.168.13.129:2380
initial-advertise-peer-urls: http://192.168.13.129:2380
initial-cluster: etcd-1=http://192.168.13.128:2380,etcd-2=http://192.168.13.129:2380,etcd-3=http://192.168.13.130:2380
initial-cluster-token: etcd-cluster-token
initial-cluster-state: new


name: etcd-3
data-dir: /usr/local/bin/etcd-v3.2.26-linux-amd64/data
listen-client-urls: http://192.168.13.130:2379,http://127.0.0.1:2379
advertise-client-urls: http://192.168.13.130:2379,http://127.0.0.1:2379
listen-peer-urls: http://192.168.13.130:2380
initial-advertise-peer-urls: http://192.168.13.130:2380
initial-cluster: etcd-1=http://192.168.13.128:2380,etcd-2=http://192.168.13.129:2380,etcd-3=http://192.168.13.130:2380
initial-cluster-token: etcd-cluster-token
initial-cluster-state: new
==================================================

sudo mkdir -p /usr/local/bin/etcd-v3.2.26-linux-amd64/data
nohup etcd --config-file=/etc/etcd/conf.yml &


etcdctl put /message Hello
etcdctl get /message

etcdctl del /message
etcdctl get /message

etcdctl --write-out=table --endpoints=localhost:2379 member list   通過本地的api來查看有哪些member list

訪問一個左閉右開
etcdctl get foo foo3

etcd支持curl的方式訪問API,支持SSL,寫操作可達1000次,使用RAFT協議

====================================================
zk,redis,etcd
一致性協議:etcd使用raft協議,zk使用zab(類paxos協議),前者易於理解,方便工程實現。ZooKeeper的部署、維護、使用比較複雜,需要安裝客戶端,官方只提供了Java和C兩種語言的接口。(paxos算法複雜)
api:etcd提供http+json,grpc接口,跨平臺語言,zk則需要使用其客戶端。
訪問安全方面:etcd支持https訪問,zk在這方面缺失。
應用場景:配置管理,服務註冊發現,選主,應用調度,分佈式隊列,分佈式鎖。


-------------------------

相較之下,ZooKeeper有如下缺點:

複雜。ZooKeeper的部署維護複雜,管理員需要掌握一系列的知識和技能;而Paxos強一致性算法也是素來以複雜難懂而聞名於世;另外,ZooKeeper的使用也比較複雜,需要安裝客戶端,官方只提供了Java和C兩種語言的接口。
Java編寫。這裏不是對Java有偏見,而是Java本身就偏向於重型應用,它會引入大量的依賴。而運維人員則普遍希望保持強一致、高可用的機器集羣儘可能簡單,維護起來也不易出錯。
發展緩慢。Apache基金會項目特有的“Apache Way”在開源界飽受爭議,其中一大原因就是由於基金會龐大的結構以及鬆散的管理導致項目發展緩慢。
etcd作爲一個後起之秀,其優點也很明顯。

簡單。使用Go語言編寫部署簡單;使用HTTP作爲接口使用簡單;使用Raft算法保證強一致性讓用戶易於理解。
數據持久化。etcd默認數據一更新就進行持久化。
安全。etcd支持SSL客戶端安全認證。

===========================================

redis:
而etcd則支持對key的版本記錄和txn操作和client對key的watch,因此適合用做服務發現


zk,redis,etcd 可以使用的功能
HTTP的服務發現(RPC,UDP,Mysql)
配置信息的管理
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章