25.4.3.10 NDB 集群 TCP/IP 连接
TCP/IP 是 NDB 集群中所有节点之间连接的默认传输机制。通常,不需要定义 TCP/IP 连接;NDB 集群 自动为所有数据节点、管理节点和 SQL 或 API 节点设置起这样的连接。
对于这个规则的例外,请参阅第 25.4.3.11 节,“NDB 集群 TCP/IP 连接使用直接连接”。
要覆盖默认的连接参数,需要在 config.ini
文件中定义一个或多个 [tcp]
部分。每个 [tcp]
部分明确地为两个 NDB 集群节点之间的 TCP/IP 连接定义了参数,并且必须至少包含参数NodeId1
和 NodeId2
,以及任何需要覆盖的连接参数。
还可以通过在 [tcp default]
部分中设置它们来更改这些参数的默认值。
[tcp]
文件中的任何部分都应该被列在文件末尾,紧随所有其他部分。然而,这对于 [tcp default]
部分并非必需。这是由 NDB 集群管理服务器读取 config.ini
文件的方式所导致的问题。
在 config.ini
文件中的 [tcp]
和 [tcp default]
部分可以设置的连接参数如下:
-
Version (or later) NDB 8.4.0 Type or units 布尔值 Default false Range true, false Restart Type 节点重启:需要对集群进行 滚动重启。(NDB 8.4.0)
默认情况下,当管理节点无法解析主机名时,尝试连接会导致致命错误。这一行为可以通过在
[tcp default]
部分的全局配置文件(通常名为config.ini
)中设置AllowUnresolvedHostNames
为true
来覆盖,如此一来,当无法解析主机名时会被视为警告,并且 ndb_mgmd 启动将继续无间断地进行。 -
Version (or later) NDB 8.4.0 Type or units 布尔值 Default false Range true, false Restart Type 节点重启:需要对集群进行 滚动重启。(NDB 8.4.0)
这项参数默认禁用。当启用(设置为
Y
或1
)时,对所有消息计算校验和,放入发送缓冲区之前。这一特性确保了在发送缓冲区中等待或通过传输机制期间消息不会被损坏。 -
当
ndb_optimized_node_selection
启用时,节点的近邻性会在某些情况下被用于选择连接到的节点。这一参数可以影响近邻性的设置,通过将其设置为较低值(表示“更接近”),见系统变量的描述以获取更多信息。 -
Version (or later) NDB 8.4.0 Type or units 名称或IP地址 Default [...] Range ... Restart Type 节点重启:需要对集群进行滚动重启。(NDB 8.4.0)
`HostName1`和
HostName2
参数可以用于指定两个节点之间给定TCP连接所使用的特定网络接口。这些参数的值可以是主机名或IP地址。 -
Version (or later) NDB 8.4.0 Type or units 名称或IP地址 Default [...] Range ... Restart Type 节点重启:需要对集群进行滚动重启。 (NDB 8.4.0)
可以使用
HostName1
和HostName2
参数来指定用于两个节点之间TCP连接的特定网络接口。这些参数的值可以是主机名或IP地址。 -
Version (or later) NDB 8.4.0 Type or units 数字 Default [无] Range 1 - 255 Restart Type 节点重启:需要对集群进行滚动重启。 (NDB 8.4.0)
要识别两个节点之间的连接,需要在配置文件中的
[tcp]
部分提供它们的节点ID作为NodeId1
和NodeId2
的值。这些与每个节点的唯一Id
值相同,详见第25.4.3.7节,“在NDB集群中定义SQL和其他API节点”。 -
Version (or later) NDB 8.4.0 Type or units 数字 Default [无] Range 1 - 255 Restart Type 节点重启:需要对集群进行滚动重启。 (NDB 8.4.0)
要确定两个节点之间的连接,需要在配置文件中的
[tcp]
部分提供它们的节点ID作为NodeId1
和NodeId2
的值。这些是每个节点的唯一Id
值,详见第25.4.3.7节,“在NDB集群中定义SQL和其他API节点”。 -
Version (or later) NDB 8.4.0 Type or units 数字 Default [无] Range 1 - 63 Restart Type 节点重启:需要对集群进行滚动重启。 (NDB 8.4.0)
设置TCP连接的服务器端。
-
Version (or later) NDB 8.4.0 Type or units 字节 Default 0 Range 0 - 4294967039 (0xFFFFFEFF) Restart Type 节点重启:需要对集群进行滚动重启。 (NDB 8.4.0)
当发送缓冲区中的未发送字节数超过这个数量时,连接就被认为是过载。
这个参数可以用来确定在发送缓冲区中必须存在多少未发送数据才能将连接视为过载。请参阅第 25.4.3.14 节,“NDB 集群发送缓冲区参数的配置”,获取更多信息。
-
Version (or later) NDB 8.4.0 Type or units 枚举 Default 4 Range 4, 6 Restart Type 初始系统重启:需要完全关闭集群,清除并从备份中恢复集群文件系统,然后重新启动集群。 (NDB 8.4.0)
确定 DNS 解析对于 IPv4 或 IPv6 版本的偏好,因为 NDB 集群配置检索机制要求所有连接都使用相同的偏好,这个参数应该在
[tcp default]
部分的config.ini
全局配置文件中设置。 -
Version (or later) NDB 8.4.0 Type or units 布尔值 Default false Range true, false Restart Type 节点重启:需要对集群进行滚动重启。 (NDB 8.4.0)
如果这个参数和
校验和
都启用,执行预发送的校验和检查,并在节点之间的所有TCP信号上检查错误。如果没有同时启用校验和
,则无效。 -
Version (or later) NDB 8.4.0 Type or units 字符串 Default [...] Range ... Restart Type 节点重启:需要对集群进行滚动重启。 (NDB 8.4.0)
设置TCP连接的代理。
-
Version (or later) NDB 8.4.0 Type or units 字节 Default 2M Range 16K - 4294967039 (0xFFFFFEFF) Restart Type 节点重启:需要对集群进行滚动重启。 (NDB 8.4.0)
指定从TCP/IP套接字接收数据时使用的缓冲区大小。
该参数的默认值是2MB。最小可能的值是16KB;理论上,最大值可以达到4GB。
-
Version (or later) NDB 8.4.0 Type or units 布尔值 Default false Range ... Restart Type 节点重启:需要对集群进行滚动重启。 (NDB 8.4.0)
如果连接的两端节点中的任一节点要求使用TLS进行身份验证,该参数的值为
true
,否则为false
。该值由NDB设置,并且不能由用户更改。 -
Version (or later) NDB 8.4.0 Type or units 无符号整数 Default 2M Range 256K - 4294967039 (0xFFFFFEFF) Restart Type 节点重启:需要对集群进行滚动重启。 (NDB 8.4.0)
TCP传输器使用一个缓冲区来存储所有消息,直到将它们发送给操作系统。在这个缓冲区达到64KB时,它们的内容会被发送;这些消息也会在执行一轮消息后被发送。为了应对临时的过载情况,还可以定义一个更大的发送缓冲区。
如果设置了这个参数,内存将不会被专门分配给每个传输器;相反,这个值表示的是单个传输器可以使用的硬限额内存(出于总可用内存中,即
TotalSendBufferMemory
),这部分内存是从总共的可用内存中划分出来的。关于在NDB集群中配置动态传输器发送缓冲区内存分配的更多信息,请参阅第25.4.3.14节,“NDB集群发送缓冲区参数配置”。发送缓冲区的默认大小为2MB,这在大多数情况下是推荐的大小。最小大小为64KB;理论上最大值为4GB。
-
Version (or later) NDB 8.4.0 Type or units 布尔值 Default false(调试版本:true) Range true, false Restart Type 节点重启:需要对集群进行滚动重启。(NDB 8.4.0)
为了能够追踪分布式消息数据包,需要为每条消息标识它。当这个参数设置为
Y
时,将在网络上传输消息ID。这个特性默认情况下在生产环境中禁用,在-debug
版本中启用。 -
设置此参数为
TRUE
或1
将绑定IP_ADDR_ANY
,这样就可以从任何地方建立连接(对于自动生成的连接)。默认值是FALSE
(0
)。 -
Version (or later) NDB 8.4.0 Type or units 微秒 Default 0 Range 0 - 2000 Restart Type 节点重启:需要对集群进行滚动重启。(NDB 8.4.0)
控制TCP传输器的旋转时间;无需启用,设置为非零值。这适用于数据节点和管理或SQL节点连接的两侧。
-
Version (or later) NDB 8.4.0 Type or units 无符号 Default 0 Range 0 - 2G Restart Type 节点重启:需要对集群进行滚动重启。(NDB 8.4.0)
确定TCP传输器初始化时内存分配的大小。默认值对于大多数常见用途场景来说是推荐的。
-
Version (or later) NDB 8.4.0 Type or units 无符号 Default 0 Range 0 - 2G Restart Type 节点重启:需要对集群进行滚动重启。 (NDB 8.4.0)
确定接收缓冲区大小,用于TCP传输器初始化。这是默认值和最小值,也允许操作系统或平台设置该值。对于大多数常见用例,默认值通常是推荐的。
-
Version (or later) NDB 8.4.0 Type or units 无符号 Default 0 Range 0 - 2G Restart Type 节点重启:需要对集群进行滚动重启。 (NDB 8.4.0)
确定发送缓冲区大小,用于TCP传输器初始化。这是默认值和最小值,也允许操作系统或平台设置该值。对于大多数常见用例,默认值通常是推荐的。
表25.20 NDB 集群重启类型
Symbol | Restart Type | Description |
---|---|---|
N | 节点 | 可以通过滚动重启(参见第 25.6.5 节,“NDB 集群的滚动重启”)进行更新。 |
S | 系统 | 所有集群节点必须完全关闭,然后重启,以便对此参数进行更改 |
I | 初始 | 数据节点必须使用--initial 选项重启 |