Репликация MySQL или кластер MySQL?

В настоящее время я запускаю веб-приложение Rails 3 с MySQL на одном первом сервере и приложение Rails API на втором сервере, который подключается к базе данных MySQL с первого сервера.

Я не рад, что API зависит от базы данных с первого сервера и решил использовать репликацию / кластеризацию, но я не уверен, что лучше всего подходит для моего случая?

  • Master - ведомая репликация, наш API не только для чтения, он также пишет много информации, поэтому он не выглядит таким ярким.
  • Мастер - Мастер репликации, слишком боится несогласованности в данных, так как он может выйти из синхронизации.
  • Кластер MySQL - это кажется лучшим вариантом для меня, однако я не уверен, стоит ли кластеризовать только с 2 узлами?

Что если один узел выйдет из строя, значит ли это, что, как только он заработает и будет использовать второй узел в качестве донора, весь кластер будет недоступен? Как я могу избежать этого?

Как вы думаете, мой лучший вариант здесь?

1 ответ

Решение

Таким образом, вы не можете кластеризовать только 2 узла. Вам нужен кворум, или вы можете потерять сервер и разбить мозг, тогда вы не уверены, какой из них имеет какие данные.

У вас может быть 2 сервера данных и третий сервер голосования, который не хранит данные, а просто является членом кластера для голосования.

Обычно я использую кластер mysql и все мои клиенты подключаются локально к haproxy, и haproxy решает, куда отправлять соединения, и отправляет все записи на один сервер 100% времени, пока он не умрет, а затем отправляется на резервный сервер.

Другие вопросы по тегам