Golang 讀取寫入Etcd


http://www.yunweipai.com/archives/8131.html 新一代etcd:etcd3

etcd是一個高可用的 Key/Value 存儲系統,主要用於分享配置和服務發現。
簡單:支持 curl 方式的用戶 API (HTTP+JSON)
安全:可選 SSL 客戶端證書認證
快速:單實例可達每秒 1000 次寫操作
可靠:使用 Raft 實現分布式

下載安裝etcd

例如 https://github.com/coreos/etcd/releases/download/v0.4.6/etcd-v0.4.6-Linux-amd64.tar.gz  版本

解壓即可使用,默認端口是 2379

使用如下:

基於http的API非常易用,這個指導將展示兩種方式:包括etcdctl和curl的例子, 注意必須為curl加上-L標志, 因為etcd會自動透明地將寫操作重定向到etcd集群的master。 

設定key : message 的值為: Hello, 這里使用 curl 方式 。如下:

$ curl -L -X PUT http://127.0.0.1:2379/v2/keys/message -d value="Hello"
{"action":"set","node":{"key":"/message","value":"Hello","modifiedIndex":4,"createdIndex":4}}

讀取key: message的值

$ curl -L http://127.0.0.1:2379/v2/keys/message{"action":"get","node":{"key":"/message","value":"Hello","modifiedIndex":4,"createdIndex":4}}

刪除key:

$ curl -L -X DELETE http://127.0.0.1:2379/v2/keys/message{"action":"delete","node":{"key":"/message","modifiedIndex":19,"createdIndex":4}}


Golang 讀取寫入Etcd數據庫
package main
 
import (
    "github.com/coreos/go-etcd/etcd"
    "log"
)
 
func main() {
    client := etcd.NewClient(
        []string{
            "http://127.0.0.1:2379",
        },
    )
    for {
        resp, err := client.Get("message", false, false)
        if err != nil {
            log.Fatal(err)
        }
        log.Printf("Current creds: %s: %s\n", resp.Node.Key, resp.Node.Value)
        receiver := make(chan *etcd.Response)
        go client.Watch("/message", 0, false, receiver, nil)
        r := <-receiver
        log.Printf("Got updated creds: %s: %s\n", r.Node.Key, r.Node.Value)
    }
}

 

 


免責聲明!

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



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