shuijingping 发表于 2018-9-19 14:00:43

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 :
=
页: [1]
查看完整版本: Golang 读取写入Etcd