创建连接池

在 C++ API 中,连接池通过 DBConnectionPool 类来实现,其构造函数如下所示:

DBConnectionPool(const string& hostName, int port, int threadNum = 10, const string& userId = "", const string& password = "",
		         bool loadBalance = false, bool highAvailability = false, bool compress = false, bool reConnect = false, bool python = false);

参数说明如下:

连接参数

  • hostName:所连接服务器的地址。

  • port: 所连接服务器的端口。

  • threadNum:建立连接的数量,默认为10。

  • userId:登录时的用户名,默认是空。

  • password:登录时用户名对应的密码,默认是空。

通过上述参数,用户可以连接到指定的IP地址和端口,并建立 threadNum 个连接。

负载均衡参数

loadBalance:是否开启负载均衡,默认是 false。

如果开启了负载均衡,在连接时,API 会去获取集群中所有的节点信息,将连接均匀的分配到这些节点上。

注: 如果连接的不是 DolphinDB 集群,不能将该参数设置为 true。

高可用参数

highAvailability:是否开启连接高可用,默认是 false。

注: 如果同时开启负载均衡和高可用,可能会导致负载均衡失效,因为连接高可用会自行决定去连接哪个数据节点,详情参见:连接数据库时的高可用参数

压缩参数

compress:是否开启压缩选项,默认是 false。

开启压缩适用于大数据量的写入或查询。压缩数据后再传输,这可以节省网络带宽,但会增加 DolphinDB 和 API 端的计算量。

重连参数

reConnect:是否在异常发生时进行自动重连,默认是 false。

注: 如果已开启高可用选项,则 API 会自动重连,此时无需配置 reConnect

其他参数

python:内部保留参数,用户无需设置。

使用示例

DBConnectionPool pool("127.0.0.1", 8848, 10, "admin", "123456", false);         //连接127.0.0.1:8848节点,连接数为10,不开启负载均衡