集群通信与连接

为了减少网络传输的开销,建议集群所有节点配置在同一局域网下。

节点 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 必须为域名。