使用github.com\coreos\etcd\clientv3\example_kv_test.go
func examplekv_put() )
if err != nil
defer cli
.close()
ctx, cancel := context.withtimeout(context.background(), requesttimeout)
_, err = cli
.put(ctx, "sample_key", "sample_value")
cancel()
if err != nil
}
使用命令列etcdctl 死活獲取不到:
./etcdctl get
"sample_key"
提示error: 100: key not found
,
使用命令列set/get是正常的:
./etcdctl set
"foo"
"bar"
./etcdctl get
"foo"
原因:需要設定etcdctl的api版本號,v2和v3不同版本,資料是不互通的。
export etcdctl_api=3
**如下:
func register(dir string, value
string)
)cli, err := clientv3.new(clientv3.config)
if err != nil
defer cli.close()
resp, err := cli.grant(context.todo(), 5)
if err != nil
_, err = cli.put(context.todo(), dir, value, clientv3.withlease(resp.id))
if err != nil
fmt.println(resp.id)
fmt.println("ttl:")
// the key 'foo' will be kept forever
ch, kaerr := cli.keepalive(context.todo(), resp.id)
if kaerr != nil
ka := <-ch
fmt.println("ttl:", ka.ttl)
// output: ttl: 5
gresp, err := cli.get(context.todo(),dir,clientv3.withlease(resp.id))
if err != nil
fmt.println(gresp.kvs)
fmt.println("number of keys:", len(gresp.kvs))
}
現象:執行完這個方法後keepalive 的節點會立馬刪除,百思不得其解。
原因:方法執行完後直接close了
defer cli.close()
解決方法:應該把cli
設定為全域性的,不進行銷毀
Oracle常見問題彙總
1 如果建立了多個oracle例項,那麼訪問em的時候預設訪問的是第乙個例項的,如何訪問第二個呢?看下這個檔案就會明白了 oracle home install portlist.ini enterprise manager console http 埠 shili1 1158 enterprise...
ab常見問題彙總
測試伺服器ab 被測試伺服器apache apache版本2.2.25 問題一 socket too many open files 24 解決 在測試伺服器操作 1 檢視當前系統設定 open files n 1024為1024 root localhost ulimit a core file ...
knn常見問題彙總
knn演算法又稱為k最近鄰 k nearest neighbor class ification 分類演算法。所謂的k最近鄰,就是指最接近的k個鄰居 資料 即每個樣本都可以由它的k個鄰居來表達。knn演算法的核心思想是,在乙個含未知樣本的空間,可以根據離這個樣本最鄰近的k個樣本的資料型別來確定樣本的...