创建连接池
在 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,不开启负载均衡