我正在尝试将 mysql 集群用于我们客户的项目中。
我设置的配置如下: 硬件SO设备
Server1 - S.O. Windows 2008 R2 64bit
Server2 - S.O. Windows 2008 R2 64bit
Client1 - S.O. Windows 7 64bit
Client2 - S.O. Windows 7 64bit
UserClient2 - S.O. Windows 7 64bit
UserClient3 - S.O. Windows 7 64bit
UserClient4 - S.O. Windows 7 64bit
UserClient5 - S.O. Windows 7 64bit
UserClientXX - S.O. Windows 7 64bit (where XX is less than 15)
My Sql Cluster Configuration Server1 - 作为集群数据节点 1 Server2 - 作为集群数据节点 2 Server1 - 作为 mysql 节点 1(从现在 MYSQL-D1) Server2 - 作为 mysql 节点 2(从现在 MYSQL-D2)
Client1 - act as mysql cluster management node 1
Client2 - act as mysql cluster management node 2
客户端应用程序配置 以下客户端(从现在开始为 CLIENTAPP):Client1、Client2、UserClient2、..、UserClientXX 具有与 mysql 集群数据库交互的 Microsoft .Net 应用程序。
一段时间后,My sql 集群配置似乎可以正常工作,并且任何 CLIENTAPP 都能够连接到 MYSQL-D1 或 MYSQL-D2(这可以通过更改 .NET 客户端应用程序的连接字符串并指向 MYSQL-D1 的 IP或MYSQL-D2的IP)。
在一个完美的世界中,CLIENTAPP 能够自动连接到正确的服务器(MYSQL-D1 或 MYSQL-D2),实际上: - 如果 MYSQL-D1 关闭 CLIENTAPP 连接到 MYSQL-D2 - 如果 MYSQL-D2 关闭 CLIENTAPP 连接到 MYSQL -D1
.NET 客户端应用程序如何与 mysql 集群交互?
我为我的场景找到的最佳解决方案如下: 1. 使用 mysql 代理,但这处于 alpha 阶段,我无法在生产环境中使用它 2. 在每个 CLIENTAPP 上安装集群数据节点 3. 使用连接字符串支持多台服务器(我不知道 mysql .NET 连接器是否支持) 4. 重写我的应用程序以与两个 MYSQL-DX 节点交互(我想避免的)
有正确的解决方案吗?哪一个是最好的?
谢谢