專案中用到etcd資料庫來儲存容器的資訊和應用的網域名稱資訊,將操作etcd的golang**整理了一下
1、將container資訊寫入到指定目錄
c, err := common.getetcdclient()2、讀取etcd的快取資料 example,只獲取其中的非目錄資訊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
func loadhaproxytemplatecache() )附 etcd儲存的資料結構資訊: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
}
//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類下面的方法 在當前目錄建立乙...