濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > golang對(duì)etcd存取和數(shù)值監(jiān)測(cè)的實(shí)現(xiàn)

golang對(duì)etcd存取和數(shù)值監(jiān)測(cè)的實(shí)現(xiàn)

熱門標(biāo)簽:浙江高速公路地圖標(biāo)注 南通如皋申請(qǐng)開通400電話 西部云谷一期地圖標(biāo)注 江西轉(zhuǎn)化率高的羿智云外呼系統(tǒng) 地圖標(biāo)注的汽車標(biāo) 高德地圖標(biāo)注口訣 學(xué)海導(dǎo)航地圖標(biāo)注 中國地圖標(biāo)注省會(huì)高清 廣州呼叫中心外呼系統(tǒng)

測(cè)試代碼如下

package main

import (
  "fmt"
  "log"
  "time"

  "go.etcd.io/etcd/clientv3"
  "golang.org/x/net/context"
)

var (
  dialTimeout  = 5 * time.Second
  requestTimeout = 2 * time.Second
  endpoints   = []string{"192.168.99.106:2379", "192.168.99.107:2379", "192.168.99.108:2379"}
)

func main() {
  cli, err := clientv3.New(clientv3.Config{
    Endpoints:  endpoints,
    DialTimeout: dialTimeout,
  })

  if err != nil {
    log.Fatal(err)
  }

  defer cli.Close()

  key1, value1 := "testkey1", "value"

  ctx, cancel := context.WithTimeout(context.Background(), requestTimeout)
  _, err = cli.Put(ctx, key1, value1)
  cancel()
  if err != nil {
    log.Println("Put failed. ", err)
  } else {
    log.Printf("Put {%s:%s} succeed\n", key1, value1)
  }

  ctx, cancel = context.WithTimeout(context.Background(), requestTimeout)
  resp, err := cli.Get(ctx, key1)
  cancel()
  if err != nil {
    log.Println("Get failed. ", err)
    return
  }

  for _, kv := range resp.Kvs {
    log.Printf("Get {%s:%s} \n", kv.Key, kv.Value)
  }

  done := make(chan bool)

  go func() {
    wch := cli.Watch(context.Background(), key1)

    for item := range wch {
      for _, ev := range item.Events {
        log.Printf("Type:%s, key:%s, value:%s\n", ev.Type, ev.Kv.Key, ev.Kv.Value)
      }
    }
  }()

  go func() {
    for cnt := 0; cnt  11; cnt++ {
      value := fmt.Sprintf("%s%d", "value", cnt)
      _, err = cli.Put(context.Background(), key1, value)
      if err != nil {
        log.Println("Put failed. ", err)
      } else {
        log.Printf("Put {%s:%s} succeed\n", key1, value)
      }
    }
  }()

  -done

  log.Println("Done!")
}

測(cè)試結(jié)果如下

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:東營 貴州 常州 德宏 吐魯番 保定 曲靖 許昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《golang對(duì)etcd存取和數(shù)值監(jiān)測(cè)的實(shí)現(xiàn)》,本文關(guān)鍵詞  golang,對(duì),etcd,存取,和,數(shù)值,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《golang對(duì)etcd存取和數(shù)值監(jiān)測(cè)的實(shí)現(xiàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于golang對(duì)etcd存取和數(shù)值監(jiān)測(cè)的實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    赤城县| 安庆市| 土默特左旗| 策勒县| 亚东县| 千阳县| 罗城| 石屏县| 东源县| 泉州市| 山西省| 安西县| 江门市| 娄烦县| 荥阳市| 宣武区| 平舆县| 隆化县| 卫辉市| 紫阳县| 芷江| 东辽县| 安丘市| 垫江县| 西吉县| 芜湖县| 桂平市| 旺苍县| 英山县| 泰顺县| 沙洋县| 滕州市| 龙泉市| 五常市| 绥中县| 通榆县| 合江县| 启东市| 古丈县| 双柏县| 东辽县|