Golang 读取写入Etcd

本文内容纲要: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)

    }

}

 

本文内容总结:Golang 读取写入Etcd

原文链接:https://www.cnblogs.com/DaBing0806/p/6796106.html

以上是 Golang 读取写入Etcd 的全部内容, 来源链接: utcz.com/z/297026.html

回到顶部