为您介绍使用 Go 客户端通过代理模式连接数据库的操作。
前提条件
在使用 GO 客户端时,尽量使用最新版本的客户端,最新版本客户端请详见GitHub go 客户端仓库。
引入 obkv-table-client-go 依赖,在本地 GO 仓库上执行以下命令,获取最新
obkv-table-client-go
依赖,也可以获取指定的版本。go get github.com/oceanbase/obkv-table-client-go
连接方法
云数据库 OceanBase 支持通过代理模式连接数据库,您可使用直接调用函数连接数据库和使用 toml 文件连接数据库两种方式。
方法一:直接调用函数
在您的 Go 代码中调用函数,并参考表格中的内容修改参数,进行数据库连接。
func NewOdpClient(
fullUserName string,
passWord string,
odpIP string,
odpRpcPort int,
database string,
cliConfig *config.ClientConfig) (Client, error)
param 参数说明
参数
说明
fullUserName
格式为 <账号名称>@<租户名称>#<集群名称>。
passWord
fullUserName 中的账号密码。
odpIP
OceanBase 数据库连接的域名。
odpRpcPort
提供 OceanBase 数据库宽表引擎(或 KV 模式)服务端口,默认是 3307。
database
需要连接的数据库名称。
cliConfig
客户端配置,具体见 ClientConfig。
return 参数说明
参数
说明
Client
客户端接口, 接口包含 insert、get、update 等方法,更多内容参见通过 Go 客户端连接数据库使用示例。
error
错误信息。
方法二:使用 toml 文件
参考模板文件
configurations/obkv-table-default.toml
制定您的配置文件,选择 Mode 模式为 proxy,修改OdpClientConfig
内容,其他内容根据实际业务需求修改,具体内容参考ClientConfig。在您的 Go 代码中调用函数, 输入 toml文件地址/位置。
func NewClientWithTomlConfig(configFilePath string) (Client, error)
param 参数说明
参数
说明
configFilePath
toml文件路径:
configurations/obkv-table-default.toml
。return 参数说明
参数
说明
Client
客户端接口, 接口包含 insert、get、update 等方法,更多内容参见通过 Go 客户端连接数据库使用示例。
error
错误信息。
ClientConfig
代码示例:
type ClientConfig struct {
ConnPoolMaxConnSize int
ConnConnectTimeOut time.Duration
ConnLoginTimeout time.Duration
OperationTimeOut time.Duration
LogLevel log.Level
TableEntryRefreshLockTimeout time.Duration
TableEntryRefreshTryTimes int
TableEntryRefreshIntervalBase time.Duration
TableEntryRefreshIntervalCeiling time.Duration
MetadataRefreshInterval time.Duration
MetadataRefreshLockTimeout time.Duration
RsListLocalFileLocation string
RsListHttpGetTimeout time.Duration
RsListHttpGetRetryTimes int
RsListHttpGetRetryInterval time.Duration
EnableRerouting bool
}
重要配置项说明:
配置项 | 说明 |
ConnPoolMaxConnSize | 连接池连接数量, 默认值 1。 |
ConnConnectTimeOut | tcp 连接超时时间, 默认 1s。 |
ConnLoginTimeout | 鉴权操作超时时间, 默认 1s。 |
OperationTimeOut | 单个请求超时时间, 默认 10s。 |
EnableRerouting | 是否开启二次路由功能, 默认关闭。 |