GBASE南大通用集群负载均衡

如果我们需要将连接请求分摊到集群的每个节点上时,可以使用集群负载均衡功能(该功能需要 GBASE南大通用 ADO.NET 8.3.81.53 及以上版本)。集群负载均衡

功能与集群高可用功能都属于客户端负载均衡解决方案。使用GBASE南大通用此功能时,需同时设置连接串的 Failover、IpList、GClusterID 参数。

GBASE南大通用集群负载均衡支持多集群的情况,即在一个应用中可以指定多个集群共同分担负载。但在每个连接串中只能指明一个 GClusterID 和此集群的 IpList。

假设存在如下场景:

 现有集群 G1 中存在三个节点,18 个连接请求。节点 1:192.168.0.2 节点 2:192.168.0.3 节点 3:192.168.0.4。

 连接串中设置 server、iplist 和 GClusterID 参数。

String _ConnString =

‚server=192.168.0.2;failover=true;iplist=192.168.0.3;192.168.0.

4;gclusterid=g1” ;

 接口会将 18 个连接请求分摊在节点 1、节点 2 和节点 3 上,分摊后每

个节点上会有 6 个请求线程。

注:当某个连接请求访问集群节点 1 时,接口发现节点 1 故障后,在后续的连接请求到来时接口将不再给节点 1 分配请求,而会将请求分配给节点 2(若节点 2 故障时会分配给节点 3)。

下面例子介绍如何开启集群负载均衡。例子中会创建 18 个连接对象,使用192.168.0.2、192.168.0.3、192.168.0.4 做为负载均摊节点。

C# 示例:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Diagnostics;

using System.Data;

using GBase.Data.GBaseClient;

namespace UsingAdoNet

{

class Program

{

static void Main(string[] args)

{

String _ConnStr = "server=192.168.0.2;user

id=root;password=1;database=test;port=5258;pooling=false;failover=tr

ue;iplist=192.168.0.3, 192.168.0.4;gclusterid=g1";

GBaseConnection[] _Conn = new GBaseConnection[18];

try

{

for (int i = 0; i < _Conn.Length; i++)

{

_Conn[i] = new GBaseConnection(_ConnStr);

_Conn[i].Open();

Thread.Sleep(2000);

}

}

catch (System.Exception ex)

{

Assert.Fail(ex.Message);

}

finally

{

for (int i = 0; i < _Conn.Length; i++)

{

if (_Conn[i] != null)

{

if (_Conn[i].State ==

System.Data.ConnectionState.Open )

_Conn[i].Close();

}

}

}

}

}

}

你可能感兴趣的:(数据库,GBASE南大通用,GBASE)