一、接口定义
·NewRpcClient() 用于通过 RPC(Remote Procedure Call,远程过程调用)的请求方式创建一个向量数据库的客户端对象。
·NewClient()为了兼容旧版本而保留,用于通过 HTTP I/O 请求方式创建一个向量数据库的客户端对象。
·NewRpcClientPool()用于创建 RPC(远程过程调用)客户端连接池。
注意:说明:
二、请求示例
RPC 请求(推荐)HTTP IO 请求(兼容 Restful 旧版本 )RPC Poolpackage mainimport ( "time" "github.com/tencent/vectordatabase-sdk-go/tcvectordb")func main() { // 初始化客户端 var defaultOption = &tcvectordb.ClientOption{ Timeout: 30 * time.Second, CACert: "path/to/your/ca-cert.pem", ReadConsistency: tcvectordb.EventualConsistency, } _, err := tcvectordb.NewRpcClient("http://10.0.X.X:80", "root", "eC4bLRy2va******************************", defaultOption) if err != nil { panic(err) }}package mainimport ( "time" "github.com/tencent/vectordatabase-sdk-go/tcvectordb")func main() { // 初始化客户端 var defaultOption = &tcvectordb.ClientOption{ Timeout: 30 * time.Second, CACert: "path/to/your/ca-cert.pem", 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 mainimport ( "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, CACert: "path/to/your/ca-cert.pem", RpcPoolSize: 5}) if err != nil { panic(err) }}
三、请求参数
| 参数名称 | 子参数 | 参数含义 | 是否必选 | 获取方式 |
| url | – | 客户端所需连接的向量数据库服务端访问地址。 | 是 | 获取向量数据库实例内网 IP 地址与端口,请登录 向量数据库控制台,在实例详情页面网络信息区域直接复制访问地址。具体操作,请参见 查看实例信息。 |
| username | – | 客户端访问向量数据库服务端的账号。 | 是 | 数据库当前仅支持 root 账号。 |
| key | – | 客户端访问向量数据库服务端的 API 密钥,用于进行身份认证。 | 是 | 请登录 向量数据库控制台,在密钥管理页面直接复制密钥。具体操作,请参见 密钥管理。 |
| ClientOption | ReadConsistency | 设置读一致性。 | 否 | 取值如下所示,默认为 EventualConsistency。StrongConsistency:强一致性。EventualConsistency:最终一致性。 |
| | Timeout | 请求超时时间。 | 否 | 单位:秒。默认值:5。取值范围:大于等于0。 |
| | CACert | 指定 SSL 加密证书路径。 | 否 | 获取方式,请参见SSL 加密。 |
| | InsecureSkipVerify | 指定是否跳过证书校验。 | 否 | false:默认为 False,不跳过证书校验(默认),SDK 将验证服务端证书以确保连接安全。true:跳过证书校验。SDK 将不验证服务端证书。 |
| | MaxIdldConnPerHost | 设置连接池最大的空闲连接数。 | 否 | 默认为 2。取值范围:大于0,如配置为0,或小于0,则使用默认值。 |
| | IdleConnTimeout | 设置空闲连接的超时时间。 | 否 | 默认值:不限制。取值说明:大于0。如果配置为0,或者负数,表示不限制空闲连接的超时时间。举例:time.Second*10。 |
| | RpcPoolSize | 设置连接池最大连接数 | 否 | 正整数,建议设置为数据节点个数的2-5倍。 |