Golang 讀取寫入Etcd資料庫

2021-07-14 06:58:48 字數 1676 閱讀 2865

專案中用到etcd資料庫來儲存容器的資訊和應用的網域名稱資訊,將操作etcd的golang**整理了一下

1、將container資訊寫入到指定目錄

c, err := common.getetcdclient()

if err != nil

kapi := client.newkeysapi(c)

key := getskydnsdomain(domainetcd.domain)

value, _ := json.marshal(domainetcd)

var etcderr error

common.haproxytemplatecache.lock.lock()

defer common.haproxytemplatecache.lock.unlock()

switch domainetcd.action

case "delete":

_, etcderr = kapi.delete(context.background(), key, &client.deleteoptions{})

delete(common.haproxytemplatecache.data, domainetcd.domain)

} if etcderr != nil

2、讀取etcd的快取資料 example,只獲取其中的非目錄資訊

func loadhaproxytemplatecache() )

if err1 != nil

skydnsnodesinfo := make(map[string]string)

getallnode(res.node, skydnsnodesinfo)

var domain models.domainetcd

for _, domainstr := range skydnsnodesinfo

/*set dockerstack container info*/

res, err1 = api.get(context.background(), "/dockerstack", &client.getoptions)

if err1 != nil

dockerstacknodesinfo := make(map[string]string)

getallnode(res.node, dockerstacknodesinfo)

var container models.containeretcd

for _, containerstr := range skydnsnodesinfo

}func getallnode(rootnode *client.node, nodesinfo map[string]string)

for node := range rootnode.nodes

}

附 etcd儲存的資料結構資訊:

//the container info in etcd

type containeretcd struct

//domain info in etcd

type domainetcd struct

type haproxyconfigration struct

type haproxytemplatecache struct

本文只是想提供一些**參考,業務內容就不細講了。。

Golang 讀取寫入Etcd

新一代etcd etcd3 etcd是乙個高可用的 key value 儲存系統,主要用於分享配置和服務發現。簡單 支援 curl 方式的使用者 api http json 安全 可選 ssl 客戶端證書認證 快速 單例項可達每秒 1000 次寫操作 可靠 使用 raft 實現分布式 例如 版本 解...

excel在android讀取,寫入,更新資料

public class readexcel extends activity public void readexcel system.out.print n 得到第一列第一行的單元格 cell cell1 sheet.getcell 0,0 string result cell1.getcont...

寫入 讀取檔案

file類下面的方法 string str file.readalltext aa.txt system.text.encoding.getencoding utf 8 讀取檔案 console.writeline str console.read filestream類下面的方法 在當前目錄建立乙...