我正在尝试使用gocb进行golang的Get。该代码如下所示:
url := fmt.Sprintf("couchbase://%s", cfg.FpcCouchbase.Hosts)
if cfg.FpcCouchbase.cluster, err = gocb.Connect(url); err != nil {
return errors.Wrap(err, "connect to CB")
}
//timeout, _ := time.ParseDuration("1m")
//cfg.FpcCouchbase.cluster.SetConnectTimeout(timeout)
//cfg.FpcCouchbase.cluster.SetServerConnectTimeout(timeout)
if cfg.FpcCouchbase.bucket, err = cfg.FpcCouchbase.cluster.OpenBucket(cfg.FpcCouchbase.Bucket, cfg.FpcCouchbase.Password); err != nil {
return errors.Wrap(err, "open CB bucket")
}
//cfg.FpcCouchbase.bucket.SetOperationTimeout(timeout)
var tmp interface{}
if _, err = config.FpcCouchbase.bucket.Get(key, &tmp); err != nil {
return errors.Wrap(err, "error reading from couchbase")
}
问题是它连接没有错误,打开了存储桶,但是调用Get时,无论我手动设置超时多长时间,它都会超时。有什么想法吗?谢谢!
LE:我自己找到了答案,因此我与您分享。 Gocb sdk使用端口11210连接Couchbase。发出请求之前,需要先打开它们。我以前使用的是8091和8092。