启用和禁用经典连接负载均衡
只有数据库 超级用户才能启用或禁用群集范围的经典连接负载均衡。要启用或禁用负载均衡,请使用 SET_LOAD_BALANCE_POLICY 函数设置负载均衡策略。将负载均衡策略设置为“NONE”以外的任何其他值可在服务器中启用负载均衡。以下示例通过将负载均衡策略设置为 ROUNDROBIN 来启用本机连接负载均衡。
=> SELECT SET_LOAD_BALANCE_POLICY('ROUNDROBIN');
SET_LOAD_BALANCE_POLICY
--------------------------------------------------------------------------------
Successfully changed the client initiator load balancing policy to: roundrobin
(1 row)
要禁用本机连接负载均衡,请使用 SET_LOAD_BALANCE_POLICY 将此策略设置为“NONE”:
=> SELECT SET_LOAD_BALANCE_POLICY('NONE');
SET_LOAD_BALANCE_POLICY
--------------------------------------------------------------------------
Successfully changed the client initiator load balancing policy to: none
(1 row)
注意
客户端连接时,本机负载均衡器会选择一个节点并返回 NODES 表中export_address
列的值。之后,客户端使用 export_address
进行连接。node_address
指定要用于在节点间分配通信的地址。安装数据库时,export_address
和 node_address
被设置为相同的值。如果将 Vertica 安装到了专用地址上,必须将每个节点的 export_address 设置为公共地址。
默认情况下,客户端连接不会进行负载均衡,即使服务器启用了连接负载均衡也是如此。客户端必须通过设置连接参数来指明其愿意对自己的连接请求进行负载均衡。 有关在客户端启用负载均衡的信息,请参阅 ADO.NET 中的负载均衡、JDBC 中的负载均衡和负载均衡。对于 vsql,使用 -C
命令行选项来启用负载均衡。
重要
在混合使用 IPv4 和 IPv6 的环境中,平衡仅适用于已配置了负载均衡的地址系列。例如,如果您使用 IPv4 地址配置了负载均衡,则 IPv6 客户端无法使用负载均衡,不过 IPv6 客户端仍然可以连接,只是不进行负载均衡而已。重置负载均衡状态
当负载均衡策略为 ROUNDROBIN 时,Vertica 群集中的每个主机都保持其自己的状态,即它选择哪个主机来处理下一个客户端连接。可使用 RESET_LOAD_BALANCE_POLICY 函数将此状态重置为其初始值(通常为具有最低节点 ID 的主机):
=> SELECT RESET_LOAD_BALANCE_POLICY();
RESET_LOAD_BALANCE_POLICY
-------------------------------------------------------------------------
Successfully reset stateful client load balance policies: "roundrobin".
(1 row)