在通过 GBase ADO.NET 访问 GBase 集群时,如果集群当前节点不可用,希 望直接连接到集群中一个可用的节点上时,我们可以使用 GBase ADO.NET 集群 高可用性功能(该功能需要 GBase ADO.NET 8.3.81.53 及以上版本)。
GBase ADO.NET 集群高可用性是接口针对GBase集群开发的在接口层面的高 可用性处理。
高可用性适用于扁平结构的 GBase 集群,在通过 GBase ADO.NET 创建连接 时,如果当前节点不可用时,接口会根据相关参数信息把连接数据库请求自动 路由到集群其他可用的节点上。
假设存在如下场景:
现有集群中存在如下三个节点。
节点 1:192.168.0.2 节点 2:192.168.0.3 节点 3:192.168.0.4
连接串中设置 server 和 iplist 参数。
String _ConnString = “
server=192.168.0.2;failover=true;iplist=192.168.0.3;192.168.0.4” ;
当应用连接到集群中节点 1 时发现故障,此时接口不抛出错误而会将 连接请求转移给节点 2,并返回给客户端,下图说明了此种场景。
下面例子介绍如何开启集群高可用功能,并使用 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;userid=root;password=1;database=test;port=5258;pooling=false;failover=tr ue;iplist=192.168.0.3,192.168.0.4″;
using (GBaseConnection _Conn = new GBaseConnection())
{
try
{
_Conn.ConnectionString = _ConnStr;
_Conn.Open();
// do something
}
catch (GBaseException ex)
{
Console.WriteLine(ex.StackTrace);
}
finally
{
if( _Conn != null )
_Conn.Close();
}
}
}
}
}
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/317772.html