Etcd入門教程


etcd是一個類似於zk的工具,用於保存值,節點-值這種映射關系的。節點組織結構類似unix文件系統結構,從/最開始。比如一個/test/name節點,值為guanxianseng。可以通過etcdctl這個客戶端,執行命令

etcdctl set /test/name guanxianseng

也可以通過客戶端命令,獲取我們設置的值

etcdctl get /test/name

當然這里返回的值就是

guanxianseng

我們之前設置的

這里etcd與zk還是有區別的。首先,zk使用的是ZAB協議,是雅虎在POXOS協議上修改的。etcd用的是raft協議,也是PAXOS協議的精簡版。通過選擇leader,客戶端將request提交給集群,集群把request打到leader。leader將request發給集群中其余節點,進行詢問、提交等動作,保證一致性。

當然,etcd和zk還有其他一些區別。以后,想看的時候在去找找

1. 安裝etcd

1.1 如果是centos可以通過

yum install etcd

進行安裝

如果是ubuntu,可以通過

apt-get install etcd

這里ubuntu我是猜的,centos我在vmware里面試過可以的。這里可能需要用到root權限。個人比較喜歡root權限,方便

這里,我想吐槽一下ubuntu,經常跳什么出現內部錯誤。很煩人,centos感覺穩定很多,突然覺得ubuntu很low

1.2 通過官網

https://github.com/coreos/etcd/releases/

下載對應的版本,解壓,執行etcd和etcdctl就可以了

1.3 驗證安裝成功

啟動etcd

etcd

執行客戶端命令

etcdctl -verison

客戶端輸出對應的版本號

etcdctl version: 3.1.7
API version: 2

OK,安裝成功。其實,就是一解壓過程

2. 客戶端使用

2.1 可以通過etcdctl在bash里面執行對應的客戶端命令。如前面所說的,etcdctl set name guanxianseng ,get命令等

2.2 使用java客戶端操作

etcd java客戶端有很多,比如etcd4j

https://github.com/adohe/etcd4j

jetcd

https://github.com/diwakergupta/jetcd

我這里使用的是etcd4j

maven依賴

<dependency>
    <groupId>com.xqbase</groupId>
    <artifactId>etcd4j</artifactId>
    <version>1.2</version>
</dependency>

...

照着etcd4j的說明文檔來就是了

3. etcd集群

現在,服務器為了高可用,都會搭建集群,防止單點故障。這里etcd也可以搭建集群,不過單機搭建偽集群好像不好弄。經常提示端口已被占用,沒有那么多機器。以后用到了在說吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM