jdbc负载均衡功能介绍
jdbc可以通过URL中设置多个数据库节点,实现对主备集群的访问。通过在URL设置负载均衡参数"autoBalance",jdbc可以在建立连接时,依照特定的负载均衡规则将客户端与主备集群的连接依次建立在URL中的各个节点上,以此实现连接的负载均衡。
5.0.0以前,jdbc提供了roundrobin、priority roundrobin、shuffe、 false四种负载均衡模式,具体介绍如下:
- roundrobin: 轮询模式,即与各候选节点轮流建立连接。
取值:"roundrobin"、"true"、"balance"
- priority roundrobin: 带优先级的轮询模式,优先对前n个候选节点做轮询建连
取值:"proprity[n]",n为非负整数。
- shuffle: 随机模式,即随机选择候选节点建立连接
取值:"shuffle"。
loadBalanceHosts设置为"true"等同于autoBalance设置为"shuffle"。(autoBalance优先级更高)
- false: 无负载均衡,始终与URL串中配置的同一个满足建连条件的节点创建连接。
5.0.0特性增强
opengauss-jdbc-5.0.0相对以前版本,在负载均衡方面主要有以下两点增强新增负载均衡算法
1. leastconn (最小连接) 模式:
- 应用场景:主要针对集群状态会发生变化,或客户端配置多个同一集群连接串的场景。
- 功能说明:实现客户端级别的集群内新建连接的负载均衡,即客户端通过jdbc向主备集群创建连接时,优先选择在集群中连接数最少的节点创建连接
2. 在最小连接模式的基础上,新增集群状态时集群快速负载均衡功能:
- 应用场景:使用连接池连接主备集群时,连接池通常会维护一定数量的长连接,当集群中某个节点失效时,连接池会在剩余节点上补充连接。当失效节点恢复时,由于连接池已经在其他节点上创建了足量的长连接,除非已有连接主动关闭,新恢复节点会始终处于空闲状态。
- 功能说明:快速负载均衡功能开启时,jdbc会监测集群中各节点的状态。当某个节点恢复时,jdbc会从其他节点上筛选出空闲连接并关闭。新建连接会基于leastconn模式优先在新恢复节点上创建连接实现集群内连接数再平衡。
......