Мы рассматриваем возможную настройку репликации для нашей основной базы данных MySQL, и хотя настройка репликации кажется довольно простой, реализация приложения кажется немного более туманной.
Моей первой идеей было бы настроить конфигурацию ведущий-ведомый и разделение RW, при этом все запросы на запись (CREATE
, INSERT
, UPDATE
) будут направляться на ведущий, а все запросы на чтение (SELECT
) - на подчиненный. Прочитав об этом, кажется, что есть два варианта того, как реализовать это с нашим приложением:
- Использование независимого уровня промежуточного программного обеспечения для всех соединений MySQL, например прокси-сервера MySQL или DBSlayer. Однако первый находится в альфа-версии, а второй имеет ограниченную документацию.
- Использование драгоценного камня/плагина на основе Ruby, такого как Octopus, для разделения RW в фреймворке.
Если бы мы хотели использовать настройку master-slave, что бы вы порекомендовали для дальнейшего развития?
Другая мысль, которая у меня была, заключалась в том, чтобы использовать конфигурацию master-master, но я не уверен в реализации такой настройки.
Мысли?