集群通信与连接
为了减少网络传输的开销,建议集群所有节点配置在同一局域网下。
节点 ip 信息
单节点模式下默认 server 的 ip 为本机 ip,端口号为 8848。若端口号被占用,可前往 config 指定的配置文件进行修改。
配置参数 |
解释 |
---|---|
localSite |
节点的局域网信息,格式为 host:port:alias。单节点模式中默认值为 localhost:8848:local8848。 |
集群环境下,控制节点和代理节点启动前,需在各自的 config 文件中配置自身的 localSite;代理节点还需额外配置 controllerSite。
配置参数 |
解释 |
---|---|
controllerSite |
代理节点的控制节点的局域网信息,必须与 controller.cfg 中某个控制节点的 localSite 相同。代理节点启动时,会使用该参数与控制节点通讯。 |
localSite 中的 host:port 为节点的 ip 和端口号,alias 将作为节点的别名。设置别名可以便于脚本编程中快速定位到指定节点,并与之建立通信连接,如 subscribeTable 函数中指定 server 参数为远端节点的别名,即可订阅远端节点发布的流数据表。用户可在线调用 getNodeAlias 获取当前节点的别名,或 getControllerAlias 获取控制节点的别名。
节点的属性通过配置项 mode 声明,目前的可选值为 controller(控制节点), agent(代理节点), datanode(数据节点) 以及 computenode(计算节点)。该配置项需在所有节点 config 文件声明。
配置参数 |
解释 |
---|---|
mode |
节点的模式 |
除了 config 文件外,controller 服务器配置的 nodesFile 文件中,也包含了所有集群代理节点、数据节点和计算节点的 localSite 和 mode,该文件为 controller 提供了集群的网络信息,以便控制节点可以访问到其它节点。
节点间通信
节点与节点之间基于 TCP 协议传输数据,DolphinDB 提供了 TCP 配置选项 tcpNoDelay,便于用户在实际生产场景下,进行通信调优。启用该参数在一定程度上可以减小传输延迟,但可能带来更大的网络负载。
配置参数 |
解释 |
---|---|
tcpNoDelay=true |
启动 TCP_NODELAY 套接字选项。默认值是 false。 |
控制节点通过心跳机制监控其它节点的存活状态,心跳可以采用 TCP/UDP 传输,通过配置项 lanCluster 指定。该参数需配置在代理节点、数据节点和计算节点的 config 文件。若心跳超时,则控制节点会认为该节点已经宕机。因此,在网络较差的场景下,建议配置较大的 dfsChunkNodeHeartBeatTimeout。
配置参数 |
解释 |
---|---|
lanCluster=true |
集群是否建立在 LAN(local area network) 上。若为 true,心跳采用 UDP 协议;若为 false,心跳采用 TCP 协议。默认值为 true。对部署在云上的集群,应当设为 false。 |
dfsChunkNodeHeartBeatTimeout=8 |
控制节点判断数据节点是否在线的超时时间(单位为秒),默认是8s。若超过该设置值,控制节点仍未收到数据节点的心跳,则认为该数据节点已宕机。 |
集群内每个节点都与集群其它远程节点相连接。每个节点连接上限数取决于配置项 maxConnectionPerSite。
配置参数 |
解释 |
---|---|
maxConnectionPerSite=2 |
从本地节点可以最多连接到多少个远程节点。 |
节点和外部会话
用户通过 API, GUI, Web notebook 开启一个会话,并通过会话和对应节点建立一个连接。每个节点的最大外部会话连接上限数由配置参数 maxConnections 决定。
配置参数 |
解释 |
---|---|
maxConnections=64 |
最多可以从多少个外部 GUI,API 或其它节点连接到本地节点。Windows 的默认值为64,有效最大值也是64;Linux 的默认值为512。 |
web notebook、VSCode 等编辑器与 DolphinDB server 默认采用 HTTP 协议传输数据。可通过配置 enableHTTPS,决定是否采用安全传输协议 HTTPS 进行传输。
配置参数 |
解释 |
---|---|
enableHTTPS=false |
是否启用 HTTPS 安全协议,默认值为 false。 |
局域网环境下通过控制节点的 ip:port 可以直接访问集群的 web 管理器,若控制节点和其它节点不在同一局域网下,需指定控制节点的外网网络信息。该配置项需在 controller 的 config 文件进行配置(默认为 controller.cfg)。
配置参数 |
解释 |
---|---|
PublicName |
控制节点外网 IP 或域名。如果 enableHTTPS 为 true,publicName 必须为域名。 |