@@ -56,7 +56,7 @@ DBConnection类提供如下主要方法:
56
56
| 方法名 | 详情 |
57
57
| :------------- | :-------------|
58
58
| DBConnection([ asynchronousTask, useSSL, compress, usePython, sqlStd] )| 构造对象|
59
- | connect(host, port, [ username, password, initialScript, enableHighAvailability, highAvailabilitySites, reconnect] )| 将会话连接到DolphinDB服务器|
59
+ | connect(host, port, [ username, password, initialScript, enableHighAvailability, highAvailabilitySites, reconnect, enableLoadBalance ] )| 将会话连接到DolphinDB服务器|
60
60
| login(username,password,enableEncryption)| 登陆服务器|
61
61
| run(script)| 将脚本在DolphinDB服务器运行|
62
62
| run(functionName,args)| 调用DolphinDB服务器上的函数|
@@ -107,16 +107,34 @@ boolean success = conn.connect("localhost", 8848, "admin", "123456");
107
107
108
108
若未使用用户名及密码连接成功,则脚本在Guest权限下运行。后续运行中若需要提升权限,可以使用 conn.login('admin','123456',true) 登录获取权限。
109
109
110
- 若需要开启 API 高可用,则须设置 highAvailability=true。1.30.22.1及之前版本的 API 将随机选择一个可用节点进行连接;用户也可以通过 highAvailabilitySites 指定可连接的节点组,此时 API 将从 highAvailabilitySites 中随机选择可用节点进行连接。示例如下:
110
+ 若需要开启 API 高可用,则须设置 ` highAvailability=true ` 。2.00.11.0版本之前,开启高可用模式即开启负载均衡模式;自2.00.11.0版本起,` connect ` 方法新增参数 * enableLoadBalance* ,用户可手动关闭高可用模式下的负载均衡功能,且该功能默认为关闭。
111
+
112
+ ** 以下为同时开启高可用模式和负载均衡功能的情况:**
113
+
114
+ 1.30.22.1及之前版本的 API 将随机选择一个可用节点进行连接;用户也可以通过 highAvailabilitySites 指定可连接的节点组,此时 API 将从 highAvailabilitySites 中随机选择可用节点进行连接。
115
+
116
+ 1.30.22.2 版本起,API 将优先选择低负载节点,判断标准为:内存占用小于80%、连接数小于90% 且节点负载小于80%。即在开启高可用后,API 将优先随机选择一个低负载节点进行连接,若没有低负载节点,则将随机连接一个可用节点。若用户通过 highAvailabilitySites 指定了可连接的节点组,此时 API 将仍优先从highAvailabilitySites 中随机连接一个低负载节点,若无,则随机选择一个highAvailabilitySites 中的可用节点。
117
+
118
+ 注意:若 API 断开重连,将按照上述规则重新连接节点。
119
+
120
+ 示例如下:
121
+
122
+ * 仅开启高可用模式,此时会开启负载均衡功能。
111
123
112
124
``` java
113
125
sites= [" 192.168.1.2:24120" , " 192.168.1.3:24120" , " 192.168.1.4:24120" ]
114
126
boolean success = conn. connect(" 192.168.1.2" , 24120 , " admin" , " 123456" , highAvailability= true , highAvailabilitySites= sites);
115
127
```
116
128
117
- 1.30.22.2 版本起,API 将优先选择低负载节点,判断标准为:内存占用小于80%、连接数小于90% 且节点负载小于80%。即在开启高可用后,API 将优先随机选择一个低负载节点进行连接,若没有低负载节点,则将随机连接一个可用节点。若用户通过 highAvailabilitySites 指定了可连接的节点组,此时 API 将仍优先从highAvailabilitySites 中随机连接一个低负载节点,若无,则随机选择一个highAvailabilitySites 中的可用节点 。
129
+ * 开启高可用模式,同时手动开启负载均衡功能 。
118
130
119
- 注意:若 API 断开重连,将按照上述规则重新连接节点。
131
+ ``` java
132
+ boolean success = conn. connect(" 192.168.1.2" , 24120 , " admin" , " 123456" , enableHighAvailability= true , highAvailabilitySites= sites, enableLoadBalance);
133
+ ```
134
+
135
+ ** 若开启高可用模式、同时不开启负载均衡功能** :API 将优先从 * highAvailabilitySites* 中随机选择一个可用节点进行连接。若未设置 * highAvailabilitySites* ,则将随机选择一个集群中的节点。
136
+
137
+ 注意:不支持仅开启负载均衡功能的情况。
120
138
121
139
当需要在应用程序里定义和使用自定义函数时,可以使用 initialScript 参数传入函数定义脚本。这样做的好处是:一、无需每次运行` run ` 函数的时候重复定义这些函数。二、API提供自动重连机制,断线之后重连时会产生新的会话。如果 initialScript 参数不为空,API会在新的会话中自动执行初始化脚本重新注册函数。在一些网络不是很稳定但是应用程序需要持续运行的场景里,这个参数会非常有用。
122
140
``` java
@@ -223,6 +241,17 @@ for (int i = 0; i < 10; ++i)
223
241
conn. run(" script" );
224
242
```
225
243
244
+ 2.00.11.0版本之前,` run ` 方法自动开启 seqNo 功能。seqNo 是一个长整型,代表一个客户端的任务序号。若当前写入任务失败,则将重复提交该任务。但在部分情况下该功能会影响使用效果。例如,当一次性写入多个数据表的任务时会有可能发生丢失数据。
245
+
246
+ 自2.00.11.0版本起,run 方法支持参数 enableSeqNo,用户可关闭 seqNo 功能。方法如下:
247
+
248
+ ``` java
249
+ public Entity run(String script, ProgressListener listener, int priority, int
250
+ parallelism, int fetchSize, boolean clearSessionMemory, String tableName, boolean enableSeqNo)
251
+ ```
252
+
253
+ 用户手动关闭 seqNo 功能后,即可避免如数据丢失等不当情况。但若当前任务失败,则不会重复提交该任务。
254
+
226
255
## 4. 运行DolphinDB函数
227
256
228
257
除了运行脚本之外,run命令还可以直接在远程DolphinDB服务器上执行DolphinDB内置或用户自定义函数。若` run ` 方法只有一个参数,则该参数为脚本;若` run ` 方法有两个参数,则第一个参数为DolphinDB中的函数名,第二个参数是该函数的参数。
@@ -291,6 +320,12 @@ public void testFunction() throws IOException{
291
320
}
292
321
```
293
322
323
+ 2.00.11.0版本之前,`run` 方法自动开启 seqNo 功能。具体可参见运行 DolphinDB 脚本小节,此处不再赘述。方法如下:
324
+
325
+ ```java
326
+ public Entity run(String function, List<Entity> arguments, int priority, int parallelism, int fetchSize, boolean enableSeqNo)
327
+ ```
328
+
294
329
## 5. 上传本地对象到DolphinDB服务器
295
330
296
331
可使用`upload`方法,将本地的数据上传到DolphinDB服务器并分配给一个变量。变量名称可以使用三种类型的字符:字母,数字或下划线,第一个字符必须是字母。
0 commit comments