使用NHibernate支持AWS Aurora故障切换功能的.Net应用程序驱动程序
我正在将我的数据库从MSSQL迁移到Aurora(MYSQL)。该应用程序使用.net和NHibernate。我们尝试了用于MYSQL“MYSQL.Data”的Nhibernate驱动程序,该驱动程序适用于除故障转移之外的所有用例。当发生故障转移时,连接不会重置,它会一直尝试从writer集群连接到旧IP,因此所有写调用都会失败,出现异常“MySQL服务器正在使用--read--only选项运行,因此无法执行此语句”。只有在web服务器上执行IISRESET后才能解决此问题 我知道对于java,MariaDB连接器能够处理这个用例。是否有任何类似的驱动程序可用于.net应用程序?使用NHibernate支持AWS Aurora故障切换功能的.Net应用程序驱动程序,.net,nhibernate,driver,failover,amazon-aurora,.net,Nhibernate,Driver,Failover,Amazon Aurora,我正在将我的数据库从MSSQL迁移到Aurora(MYSQL)。该应用程序使用.net和NHibernate。我们尝试了用于MYSQL“MYSQL.Data”的Nhibernate驱动程序,该驱动程序适用于除故障转移之外的所有用例。当发生故障转移时,连接不会重置,它会一直尝试从writer集群连接到旧IP,因此所有写调用都会失败,出现异常“MySQL服务器正在使用--read--only选项运行,因此无法执行此语句”。只有在web服务器上执行IISRESET后才能解决此问题 我知道对于java,
处理这种用例的最佳实践是什么?MariaDB java connector为Aurora提供了一个特定的实现。没有一个是我知道的.net。 正常的解决方案仍然是使用群集DNS:Aurora提供不同的DNS链接:
- 每个实例一个
- 集群端点(如xxx.cluster yyy.zzz.rds.amazonaws.com)
- 读卡器端点(负载平衡)(如xxx.cluster ro yyy.zzz.rds.amazonaws.com)
使用集群端点时,您正在使用当前writer实例。当发生故障转移时,此DNS将指向新主机,但此更改需要一些时间(到目前为止,我们使用的驱动程序没有帮助,即使web服务器上的nslookup返回新写入程序的IP,应用程序仍保持连接到旧写入程序。我们将默认DNS缓存从2分钟减少到2秒,并对其进行了测试。只有在执行IIS重置或应用程序池回收时,应用程序才会恢复。“最好的解决方案是查询“显示全局变量,如‘innodb_只读’”,检查结果是否关闭以验证连接。“-在.net驱动程序中是否有任何功能可以继续检查变量,或者我们需要构建轮询服务?Mariadb ODBC驱动程序似乎在Aurora故障切换中运行良好,但在NHibernate中不适用于外键关系。@Tulika您是否找到Aurora故障切换解决方案?