日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

etcd 多台服务器集群

發布時間:2025/3/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 etcd 多台服务器集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

etcd 多臺服務器集群

下載安裝 etcd

$ mkdir -p $GOPATH/src/github.com/coreos $ cd !$ $ git clone https://github.com/coreos/etcd.git $ cd etcd $ ./build

啟動服務

每個節點都要執行以下配置,HOST_1、HOST_2、HOST_3 分別設置為多臺服務器的IP

TOKEN=token-01 CLUSTER_STATE=new NAME_1=machine-1 NAME_2=machine-2 NAME_3=machine-3 HOST_1=192.168.1.126 HOST_2=192.168.1.119 HOST_3=192.168.1.103 CLUSTER=${NAME_1}=http://${HOST_1}:2380,${NAME_2}=http://${HOST_2}:2380,${NAME_3}=http://${HOST_3}:2380

machine 1 執行如下命令

$ cd $GOPATH/src/github.com/coreos/etcd/bin# For machine 1 THIS_NAME=${NAME_1} THIS_IP=${HOST_1} ./etcd --data-dir=data.etcd --name ${THIS_NAME} --initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 --advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 --initial-cluster ${CLUSTER} --initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}

machine 2 執行如下命令

$ cd $GOPATH/src/github.com/coreos/etcd/bin# For machine 2 THIS_NAME=${NAME_2} THIS_IP=${HOST_2} ./etcd --data-dir=data.etcd --name ${THIS_NAME} --initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 --advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 --initial-cluster ${CLUSTER} --initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}

machine 3 執行如下命令

$ cd $GOPATH/src/github.com/coreos/etcd/bin# For machine 3 THIS_NAME=${NAME_3} THIS_IP=${HOST_3} ./etcd --data-dir=data.etcd --name ${THIS_NAME} --initial-advertise-peer-urls http://${THIS_IP}:2380 --listen-peer-urls http://${THIS_IP}:2380 --advertise-client-urls http://${THIS_IP}:2379 --listen-client-urls http://${THIS_IP}:2379 --initial-cluster ${CLUSTER} --initial-cluster-state ${CLUSTER_STATE} --initial-cluster-token ${TOKEN}

檢測服務器運行是否正常

$ cd $GOPATH/src/github.com/coreos/etcd/binexport ETCDCTL_API=3 HOST_1=192.168.1.126 HOST_2=192.168.1.119 HOST_3=192.168.1.103 ENDPOINTS=$HOST_1:2379,$HOST_2:2379,$HOST_3:2379./etcdctl --endpoints=$ENDPOINTS member list

存儲數據

./etcdctl --endpoints=$ENDPOINTS put foo "Hello World!"./etcdctl --endpoints=$ENDPOINTS get foo ./etcdctl --endpoints=$ENDPOINTS --write-out="json" get foo

根據前綴查詢

./etcdctl --endpoints=$ENDPOINTS put web1 value1 ./etcdctl --endpoints=$ENDPOINTS put web2 value2 ./etcdctl --endpoints=$ENDPOINTS put web3 value3./etcdctl --endpoints=$ENDPOINTS get web --prefixweb1 value1 web2 value2 web3 value3

刪除

./etcdctl --endpoints=$ENDPOINTS put key myvalue ./etcdctl --endpoints=$ENDPOINTS del key./etcdctl --endpoints=$ENDPOINTS put k1 value1 ./etcdctl --endpoints=$ENDPOINTS put k2 value2 ./etcdctl --endpoints=$ENDPOINTS del k --prefix

事務寫入

$ ./etcdctl --endpoints=$ENDPOINTS put user1 bad OK$ ./etcdctl --endpoints=$ENDPOINTS txn --interactivecompares: // 輸入以下內容,輸入結束按 兩次回車 value("user1") = "bad" //如果 user1 = bad,則執行 get user1 success requests (get, put, del): get user1 //如果 user1 != bad,則執行 put user1 good failure requests (get, put, del): put user1 good // 運行結果,執行 success SUCCESSuser1 bad$ ./etcdctl --endpoints=$ENDPOINTS txn --interactive compares: value("user1") = "111" // 如果 user1 = 111,則執行 get user1 success requests (get, put, del): get user1 //如果 user1 != 111,則執行 put user1 2222 failure requests (get, put, del): put user1 2222 // 運行結果,執行 failure FAILUREOK$ ./etcdctl --endpoints=$ENDPOINTS get user1 user1 2222

watch

// 當 stock1 的數值改變( put 方法)的時候,watch 會收到通知 ./etcdctl --endpoints=$ENDPOINTS watch stock1// 新打開終端 $ cd $GOPATH/src/github.com/coreos/etcd/binexport ETCDCTL_API=3 HOST_1=192.168.1.126 HOST_2=192.168.1.119 HOST_3=192.168.1.103 ENDPOINTS=$HOST_1:2379,$HOST_2:2379,$HOST_3:2379 ./etcdctl --endpoints=$ENDPOINTS put stock1 1000./etcdctl --endpoints=$ENDPOINTS watch stock --prefix./etcdctl --endpoints=$ENDPOINTS put stock1 10 ./etcdctl --endpoints=$ENDPOINTS put stock2 20

更多操作

https://coreos.com/etcd/docs/latest/demo.html

總結

以上是生活随笔為你收集整理的etcd 多台服务器集群的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。