Назад | Перейти на главную страницу

клиентское соединение mysql cluster .net, который хост

Я пытаюсь использовать кластер mysql в проекте для нашего клиента.

Я установил следующую конфигурацию:

**Hardware S.O. equipment**
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) 

Моя конфигурация кластера Sql Server1 - действовать как узел данных кластера 1 Server2 - действовать как узел данных кластера 2 Server1 - действовать как узел mysql 1 (теперь MYSQL-D1) Server2 - действовать как узел mysql 2 (теперь MYSQL-D2) Client1 - действовать как кластер mysql узел управления 1 Client2 - действует как узел управления кластером mysql 2

Конфигурация клиентского приложения Следующие клиенты (теперь CLIENTAPP): Client1, Client2, UserClient2, .., UserClientXX имеют приложение Microsoft .Net, которое взаимодействует с базой данных кластера mysql.

Через некоторое время конфигурация кластера My sql, похоже, работает правильно, и любой из CLIENTAPP может подключиться к MYSQL-D1 или MYSQL-D2 (это можно сделать, изменив строку подключения клиентского приложения .NET и указав IP-адрес MYSQL-D1 или к IP MYSQL-D2).

В идеальном мире CLIENTAPP автоматически может подключиться к нужному серверу (MYSQL-D1 или MYSQL-D2), на практике: - если MYSQL-D1 не работает, CLIENTAPP подключается к MYSQL-D2 - если MYSQL-D2 не работает, CLIENTAPP подключается к MYSQL -D1

Как клиентское приложение .NET может взаимодействовать с кластером mysql?

Лучшие решения, которые я нашел для своего сценария, следующие: 1. использовать прокси-сервер mysql, но он находится на альфа-стадии, и я не могу использовать его в производственной среде 2. установить узел данных кластера на каждом CLIENTAPP 3. использовать строку подключения которые поддерживают несколько серверов (я не знаю, поддерживается ли он соединителем mysql .NET) 4. Перепишите мое приложение, чтобы оно взаимодействовало с обоими узлами MYSQL-DX (чего я хочу избежать)

Есть ли правильные решения? Какой из них лучший?

Спасибо

Ваша конфигурация больше похожа на мульти-мастер, чем на кластер: в кластере узлы данных и клиенты (обычно серверы mysql) подключаются к управляющему узлу, который обрабатывает приход и уход узлов.

Затем вы просто подключаетесь к любому из ваших серверов mysql и запускаете операторы sql ... которые обрабатываются узлами данных для таблиц в NDBCLUSTER. Но таким образом вы не получите выгоду от силы NDBApi. Только его возможности балансировки нагрузки.

Может быть, вам стоит взглянуть на многопользовательскую репликацию mysql, DRDB или кластер percona xtradb.

К сожалению, похоже, что у него не так много вариантов балансировки нагрузки для mysql C #, но, возможно, вы можете закодировать оболочку вокруг объекта подключения Mysql one.

Что касается бокового узла, то есть очень мощные драйверы для Java и C ++, которые позволяют напрямую подключаться к узлам данных, минуя sql для общих операций CRUD, и имеют огромный прирост производительности. Думаю, сообществу пора создать драйвер .Net NDBCluster.