连接数据库实例

最近更新时间:2025-07-01 10:19:43

我的收藏

接口定义

NewRpcClient() 用于通过 RPC(Remote Procedure Call,远程过程调用)的请求方式创建一个向量数据库的客户端对象。
NewClient()为了兼容旧版本而保留,用于通过 HTTP I/O 请求方式创建一个向量数据库的客户端对象。
NewRpcClientPool()用于创建 RPC(远程过程调用)客户端连接池。
说明:
Go SDK 为 1.3.2 及以上版本支持 RPC(Remote Procedure Call,远程过程调用)通信,在多线程场景,RPC 可以提供比 HTTP I/O 更好的并发请求能力。
NewRpcClientPool() 适用于高可用版本实例,特别适合客户端节点较少但 collection 副本较多(尤其是单 Shard 多副本)的场景。
NewRpcClient()
NewClient()
NewRpcClientPool()
func tcvectordb.NewRpcClient(url string, username string, key string, option *tcvectordb.ClientOption) (*tcvectordb.RpcClient, error)
func tcvectordb.NewClient(url string, username string, key string, option *tcvectordb.ClientOption) (*tcvectordb.Client, error)
func NewRpcClientPool(url, username, key string, option *ClientOption) (VdbClient, error)

请求示例

RPC 请求(推荐)
HTTP IO 请求(兼容 Restful 旧版本 )
RPC Pool
package main
import (
"time"
"github.com/tencent/vectordatabase-sdk-go/tcvectordb"
)

func main() {
// 初始化客户端
var defaultOption = &tcvectordb.ClientOption{
Timeout: 30 * time.Second,
ReadConsistency: tcvectordb.EventualConsistency,
}
_, err := tcvectordb.NewRpcClient("http://10.0.X.X:80", "root", "eC4bLRy2va******************************", defaultOption)
if err != nil {
panic(err)
}
}
package main
import (
"time"
"github.com/tencent/vectordatabase-sdk-go/tcvectordb"
)

func main() {
// 初始化客户端
var defaultOption = &tcvectordb.ClientOption{
Timeout: 30 * time.Second,
MaxIdldConnPerHost: 2,
IdleConnTimeout: time.Minute,
ReadConsistency: tcvectordb.EventualConsistency,
}
_, err := tcvectordb.NewClient("http://10.0.X.X:80", "root", "eC4bLRy2va******************************", defaultOption)
if err != nil {
panic(err)
}
}
package main
import (
"time"
"github.com/tencent/vectordatabase-sdk-go/tcvectordb"
)

func main() {
url := "vdb http url or ip and port"
key := "key get from web console"
ctx := context.Background()
_, err := tcvectordb.NewRpcClientPool(url, "root", key, &tcvectordb.ClientOption{
ReadConsistency: tcvectordb.EventualConsistency,
RpcPoolSize: 5})
if err != nil {
panic(err)
}
}

请求参数

参数名称
子参数
参数含义
是否必选
获取方式
url
-
客户端所需连接的向量数据库服务端访问地址。
获取向量数据库实例内网 IP 地址与端口,请登录 向量数据库控制台,在实例详情页面网络信息区域直接复制访问地址。具体操作,请参见 查看实例信息



username
-
客户端访问向量数据库服务端的账号。
数据库当前仅支持 root 账号。
key
-
客户端访问向量数据库服务端的 API 密钥,用于进行身份认证。
请登录 向量数据库控制台,在密钥管理页面直接复制密钥。具体操作,请参见 密钥管理



ClientOption

ReadConsistency
设置读一致性。
取值如下所示,默认为 EventualConsistency
StrongConsistency:强一致性。
EventualConsistency:最终一致性。

Timeout
请求超时时间。
单位:秒。
默认值:5。
取值范围:大于等于0。

MaxIdldConnPerHost

设置连接池最大的空闲连接数。
默认为 2。
取值范围:大于0,如配置为0,或小于0,则使用默认值。

IdleConnTimeout
设置空闲连接的超时时间。

默认值:不限制。
取值说明:大于0。如果配置为0,或者负数,表示不限制空闲连接的超时时间。
举例:time.Second*10。
RpcPoolSize
设置连接池最大连接数
正整数,建议设置为数据节点个数的2-5倍。