最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言操作etcd的示例詳解

 更新時間:2024年03月14日 10:32:28   作者:別人家的孩子zyh  
etcd是使用Go語言開發(fā)的一個開源的、高可用的分布式key—value存儲系統(tǒng),可以用于配置共享和服務(wù)的注冊和發(fā)現(xiàn),下面我們就來看看Go語言是如何操作etcd的吧

etcd介紹

etcd是使用Go語言開發(fā)的一個開源的、高可用的分布式key—value存儲系統(tǒng),可以用于配置共享和服務(wù)的注冊和發(fā)現(xiàn),基于raft算法實現(xiàn)具有強一致性

etcd中涉及了數(shù)據(jù)一致性、多版本并發(fā)控制、watch監(jiān)控、磁盤IO讀寫等知識點

etcd的特性:

1.簡單:etcd的安裝簡單,為用戶提供了HTTP的接口,使用也很簡單

2.存儲:etcd的基本功能,基本信息存儲在文件中

3.Watch機制:watch指定的鍵的更改會通知

4.安全通信:SSL證書驗證

5.高性能:2K/s讀操作,提供了基準(zhǔn)測試的工具

6.一致可靠:raft一致性算法

類似的項目有zookeeper和consul。

etcd具有以下的特點:

1.完全復(fù)制:集群中的每個節(jié)點都可以使用完整的存檔

2.高可用性:Etcd可用于避免硬件的單點故障或網(wǎng)絡(luò)問題

3.一致性:每次讀取都會返回跨多主機的最新寫入

4.簡單:包括一個定義良好、面向用戶的API(gRPC)

5.安全:實現(xiàn)了帶有可選的客戶端證書身份驗證的自動化TLS

6.快速:每秒10000次寫入的基準(zhǔn)速度

7.可靠:使用Raft算法實現(xiàn)了強一致、高可用的服務(wù)存儲目錄

etcd的常見分布式場景:

1.鍵值對存儲

2.服務(wù)注冊與發(fā)現(xiàn)

3.消息訂閱與發(fā)布

4.分布式鎖

go語言操作etcd

首先在后臺啟動etcd

寫一段go代碼

package main

import (
	"context"
	"fmt"
	clientv3 "go.etcd.io/etcd/client/v3"
	"time"
)

func main() {
	// 創(chuàng)建客戶端,連接etcd
	cli, err := clientv3.New(clientv3.Config{
		Endpoints:   []string{"127.0.0.1:2379"},
		DialTimeout: 5 * time.Second,
	})
	if err != nil {
		fmt.Printf("connect to etcd failed, err:%v\n", err)
		return
	}
	fmt.Println("connect to etcd success")
	defer cli.Close()
	str := `[{"path":"d:/logs/s4.logs","topic":"s4_logs"},{"path":"d:/logs/web.logs","topic":"web_logs"}`
	// put操作
	_, err = cli.Put(context.TODO(), "collect_log_conf", str)
	if err != nil {
		fmt.Printf("put to etcd failed, err:%v\n", err)
		return
	}
	 get操作
	resp, err := cli.Get(context.TODO(), "collect_log_conf") // 獲取指定Key的值
	if err != nil {
		fmt.Printf("get to etcd failed")
		return
	}
	for _, ev := range resp.Kvs {
		fmt.Printf("key:%s,value:%s\n", ev.Key, ev.Value)
	}
	 delete 刪除key
	//if _,err = cli.Delete(context.TODO(), "testetcd");err != nil{
	//	fmt.Println("delete key failed")
	//}else{
	//	fmt.Println("delete key success")
	//}
}

也可以直接使用ectdctl工具查看key

etcdctl.exe --endpoints=127.0.0.1:2379 get collect_log_conf

到此這篇關(guān)于Go語言操作etcd的示例詳解的文章就介紹到這了,更多相關(guān)Go操作etcd內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Linux系統(tǒng)中安裝Go語言的詳細(xì)教程

    在Linux系統(tǒng)中安裝Go語言的詳細(xì)教程

    這篇文章主要介紹了在Linux系統(tǒng)中安裝Go語言的詳細(xì)教程,由于國內(nèi)很多人對谷歌的盲目追捧,導(dǎo)致Go語言在國內(nèi)的人氣遠(yuǎn)超國外...需要的朋友可以參考下
    2015-06-06
  • vscode上搭建go開發(fā)環(huán)境詳細(xì)完整過程

    vscode上搭建go開發(fā)環(huán)境詳細(xì)完整過程

    這篇文章主要給大家介紹了關(guān)于vscode上搭建go開發(fā)環(huán)境的詳細(xì)完整過程,Go語言或?qū)⒊蔀樾碌闹髁﹂_發(fā)語言,Go是google開發(fā)的一種靜態(tài)強類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語言,所以我們有必要學(xué)習(xí)并掌握它,需要的朋友可以參考下
    2023-10-10
  • Golang程序中使用Prometheus的client_golang庫

    Golang程序中使用Prometheus的client_golang庫

    這篇文章主要介紹了Golang程序中使用Prometheus的client_golang庫,Prometheus 是一個開源的監(jiān)控和警報工具包,用于收集和處理應(yīng)用程序和系統(tǒng)的指標(biāo)數(shù)據(jù)。Prometheus 提供了多種客戶端庫,可以輕松地集成到各種編程語言中
    2023-04-04
  • Golang中Json的序列化和反序列化的使用

    Golang中Json的序列化和反序列化的使用

    本文主要介紹了Golang中Json的序列化和反序列化的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Go語言使用protojson庫實現(xiàn)Protocol Buffers與JSON轉(zhuǎn)換

    Go語言使用protojson庫實現(xiàn)Protocol Buffers與JSON轉(zhuǎn)換

    本文主要介紹Google開源的工具庫Protojson庫如何Protocol Buffers與JSON進(jìn)行轉(zhuǎn)換,以及和標(biāo)準(zhǔn)庫encoding/json的性能對比,需要的朋友可以參考下
    2023-09-09
  • Go語言基礎(chǔ)if條件語句用法及示例詳解

    Go語言基礎(chǔ)if條件語句用法及示例詳解

    這篇文章主要為大家介紹了Go語言基礎(chǔ)if條件語句的用法及示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-11-11
  • Go語言實現(xiàn)猜謎小游戲

    Go語言實現(xiàn)猜謎小游戲

    這篇文章主要為大家介紹了Go語言實現(xiàn)猜謎小游戲示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Golang 探索對Goroutine的控制方法(詳解)

    Golang 探索對Goroutine的控制方法(詳解)

    下面小編就為大家分享一篇Golang 探索對Goroutine的控制方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Go語言中new()和 make()的區(qū)別詳解

    Go語言中new()和 make()的區(qū)別詳解

    這篇文章主要介紹了Go語言中new()和 make()的區(qū)別詳解,本文講解了new 的主要特性、make 的主要特性,并對它們的區(qū)別做了總結(jié),需要的朋友可以參考下
    2014-10-10
  • 詳解Go中defer與return的執(zhí)行順序

    詳解Go中defer與return的執(zhí)行順序

    Go?defer中改變return的值會生效嗎,這就設(shè)計到了GO語言中defer與return哪個先執(zhí)行的問題了,下面小編就通過簡單的示例來和大家講講吧
    2023-07-07

最新評論

余江县| 闽清县| 巴林左旗| 元江| 徐水县| 余姚市| 新丰县| 兴业县| 民权县| 集贤县| 凉山| 鲁甸县| 贡觉县| 苍溪县| 洮南市| 贵德县| 怀集县| 海盐县| 石景山区| 都安| 楚雄市| 张家界市| 安福县| 阿勒泰市| 宿松县| 富蕴县| 垦利县| 三门峡市| 竹北市| 沁水县| 榆中县| 德州市| 巫溪县| 景洪市| 绍兴县| 北安市| 高唐县| 龙岩市| 监利县| 南城县| 青州市|