Я пытаюсь понять, как лучше всего создать активный-активный кластер, использующий реплицированную базу данных. Для балансировки сетевой нагрузки и переключения при отказе я могу использовать Windows NLB. Для базы данных я могу использовать MySQL, который может выполнять репликацию мастер-мастер из коробки. Это простая часть.
Теперь моя проблема в том, как запрограммировать службу обмена сообщениями, которая подключена к реплицированной базе данных. Как лучше всего спроектировать его так, чтобы обе службы работали с одними и теми же таблицами без конфликтов? В случае сбоя незавершенные транзакции отказавшего узла должны быть приняты другим узлом.
Вот как работает служба обмена сообщениями. Веб-клиенты будут вызывать веб-службу с получателем и сообщением. Веб-служба вставит сообщение в очередь базы данных. При выполнении определенного условия сообщение будет передано. Это могло произойти в течение нескольких секунд или пары дней.
Я провел обширные поиски в Интернете, но безрезультатно. Кто-нибудь делал что-то подобное? Спасибо.