Global Options (System properties / Java -Dxxx)

namedescription
“CeresDB.available_cpus”CeresDB 可用 cpu 数量指定,默认使用当前环境的全部 cpu 数量
“CeresDB.grpc.conn.failures.reset_threshold”gRPC reset connection 的阈值,默认 3
“CeresDB.client.read.write.rw_logging”写查的简洁日志输出开关,默认 true
“CeresDB.client.write.collect_wrote_detail”写入成功后是否保留写入的 metric 列表,默认为 false
“CeresDB.client.use_os_signal”是否使用 OS Signal,默认会使用 SIGUSR2
“CeresDB.signal.out_dir”Signal 接收器输出内容到指定磁盘目录,默认为进程启动目录
“CeresDB.avro.name_validate”是否开启 Avro name 校验,默认 false
“CeresDB.rpc.write.limit_percent”RPC 层自适应限流器 操作占比(默认 0.7),剩下的留给 操作
“CeresDB.reporter.period_minutes”Metrics reporter 定时输出周期,默认 30 分钟
“CeresDB.http.read_timeout_ms”基于 http 协议的管理类 API 的 http 读超时时间,默认 10000ms
“CeresDB.http.write_timeout_ms”基于 http 协议的管理类 API 的 http 写超时时间,默认 10000ms

CeresDBOptions

namedescription
clusterAddress集群地址(稳定可用的地址),路由表将从这个地址获取
asyncWritePool作为一个纯异步的 client,需要一个写入调度线程池,用户可自行配置,默认将使用 SerializingExecutor,如果自行配置了 pool 请重点关注性能指标:async_read_pool.time 的数据,即使调整这个调度线程池的配置
asyncReadPool作为一个纯异步的 client,需要一个查询调度线程池,用户可自行配置,默认将使用 SerializingExecutor,如果自行配置了 pool 请重点关注性能指标:async_read_pool.time 的数据,即使调整这个调度线程池的配置
tenant租户信息
rpcOptionsRPC 的配置选项,详情请参考 RpcOptions
routerOptions路由表更新组件的配置选项,详情请参考 RouterOptions
writeOptions写入相关的的配置选项,详情请参考 WriteOptions
managementOptions数据管理相关配置选项,详情参考 ManagementOptions

WriteOptions

写入相关的的配置选项

namedescription
maxRetries最大重试次数,sdk 会根据 server 返回的 error code 自行决定是否重试(通常是可能是路由表失效),重试过程对用户透明,完全异步上层无感知
maxWriteSize每次写入请求最大的数据条目,超过会被分割成多个请求,默认值为 512
maxInFlightWriteRows写入限流参数:最大的在途请求的数据行数,超过会被 block
limitedPolicy写入限流策略,提供几个实现分别为 blocking、discard 和 blocking-timeout,默认为 abort-blocking-timeout(3s)(阻塞到超时 3s 后失败并抛出异常),用户也可自行扩展

QueryOptions

写入相关的的配置选项

namedescription
maxRetries最大重试次数,sdk 会在路由表失效时重试,重试过程对用户透明,完全异步上层无感知
maxInFlightQueryRequests查询限流参数:最大的在途请求数,超过会被 block
limitedPolicy查询限流策略,提供几个实现分别为 blocking、discard 和 blocking-timeout,默认为 abort-blocking-timeout(10s)(阻塞到超时 10s 后失败并抛出异常),用户也可自行扩展

ManagementOptions

namedescription
managementAddress管理服务地址,通常和集群地址 IP/Host 相同,但端口不同
tenant租户信息
checkSql是否在客户端提前检查 sql 有效性,默认 true

RpcOptions

RPC 相关的配置选项

namedescription
defaultRpcTimeout默认的远程调用超时时间,每个请求可单独指定 timeout,如果没有指定,那么将使用这个值,默认为 10s
rpcThreadPoolSize处理 RPC 调用的线程池最大线程数
rpcThreadPoolQueueSize处理 RPC 调用的线程池最大线程数, 如果设置为 0,那么将使用 IO 线程处理 response,默认为 64,线程池的 core_size 要比这个值小,具体公式为:Math.min(Math.max(Cpus.cpus() << 1, 16), rpcThreadPoolQueueSize)
maxInboundMessageSize上行消息,可接受单个 message 最大的字节数,默认 64M
flowControlWindow基于 http2.0 的流量控制,默认 64M
idleTimeoutSeconds设置连接的最大空闲时间,超过时间连接可能失效,默认 5 分钟
keepAliveTimeSeconds心跳保鲜,此参数控制在 transport 上发送 keep-alive ping 的时间间隔(以秒为单位默认无限秒,相当于关闭),具备指数避让策略。
keepAliveTimeoutSeconds心跳保鲜,此参数控制 keep-alive ping 的发送方等待确认的时间(以秒为单位, 默认 3 秒)。如果在此时间内未收到确认,它将关闭连接。
keepAliveWithoutCalls心跳保鲜,如果将此参数设置为 true(默认为 false),则即使没有请求进行,也可以发送 keep-alive ping。这会产生一定消耗,通常情况下,更建议使用 idleTimeoutSeconds 来代替次选项
limitKind限流算法类型,支持 Vegas 和 Gradient, 默认为 Gradient
initialLimitLimiter 初始 limit
maxLimitLimiter 最大 limit
smoothingLimiter 平滑因子,默认 0.2
blockOnLimit当达到限流值时是否 block 住请求线程?否则快速失败,默认值 false

RouterOptions

路由表更新组件的配置选项

namedescription
maxCachedSize本地最大缓存路由表条目数量,默认值为 10_000,超过会定期 GC
gcPeriodSeconds定期 GC 触发频率,默认 60 秒
refreshPeriodSeconds路由表刷新频率,除了被服务端标记为 invalid 会在调用时主动刷新以外,后台还会定期刷新所有路由表,默认 30 秒执行一次全量刷新