Skip to content

创建Go客户端实例

IHEII edited this page Aug 21, 2023 · 2 revisions

创建客户端实例

目前Go客户端可以使用两种方式连接Server:

  1. 直连连接Server(使用Config Server)
  2. 通过连接ODP(OceanBase Database Proxy)连接Server 同时我们提供直接创建及toml文件创建客户端两种方式

直连模式

func NewClient(
	configUrl string,
	fullUserName string,
	password string,
	sysUserName string,
	sysPassWord string,
	cliConfig *config.ClientConfig) (Client, error) {

param

  • configUrl: 从obconfig server获取RSlist的url
  • fullUserName: 格式为userName@tenantName#clusterName
  • passWord: fullUserName中userName访问OceanBase的密码
  • sysUserName: 系统租户下的用户名, 只有系统租户下的用户才有权限访问路由表
  • sysPassWord: 系统租户下的用户密码
  • cliConfig: 客户端配置, 具体见config.ClientConfig

return

  • Client: 客户端接口, 接口包含insert、get、update等方法
  • error: 错误信息

ODP模式

func NewOdpClient(
	fullUserName string,
	passWord string,
	odpIP string,
	odpRpcPort int,
	database string,
	cliConfig *config.ClientConfig) (Client, error)

param

  • fullUserName: 格式为userName@tenantName#clusterName
  • passWord: fullUserName中userName访问OceanBase的密码
  • odpIP: ODP的IP地址
  • odpRpcPort: ODP的RPC端口号
  • database: 需要连接的数据库名称
  • cliConfig: 客户端配置, 具体见config.ClientConfig

return

  • Client: 客户端接口,接口包含insert、get、update等方法
  • error: 错误信息

Toml文件配置

配置文件位置: configurations/obkv-table-default.toml. 配置文件中可以在直连或者ODP两种模式中选择一个填写参数, 其他的参数作用可以参见ClientConfig.

func NewClientWithTomlConfig(configFilePath string) (Client, error)

param

  • configFilePath: toml文件路径

return

  • Client: 客户端接口,接口包含insert、get、update等方法
  • 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: 是否开启二次路由功能, 默认关闭