репликация mariadb с разделением данных и кластеризацией - PullRequest
0 голосов
/ 11 апреля 2019

Мы настроили кластер galera mariaDB с тремя узлами, который в основном является мультимастерным и выполняет синхронную репликацию данных между узлами в кластере. В конечном счете, чтение / запись может выполняться через любые узлы в кластере.Однако это не решило нашу проблему.Поскольку у mariadb есть различные разновидности, такие как mariaDB maxscale для шардинга, мы также можем применить асинхронную репликацию в кластере galera.В то же время мы можем также использовать разделитель ReaWrite и schemaRouter на кластере galera для распределения нагрузки.Как следующие требования могут быть достигнуты с помощью MariaDB Данные должны быть распределены не на каждом узле, что означает, что репликация данных должна быть управляемой. Поскольку MariaDb по умолчанию реплицируется на все ведомые устройства в случае master-slave и на все, что имеет серверте же данные в случае галеры.В случае galera главная проблема заключается в том, что у нас должно быть большое оборудование во всех узлах.Я согласен, что мы можем достичь высокой пропускной способности для разных клиентов, но данные не распределяются, что фактически отражается.На той же ноте в случае Master-Slave, который имеет узкое место в одной точке отказа.Пожалуйста, предложите, есть ли альтернативный подход, который обеспечивает высокую доступность, потому что наше приложение интенсивно читает / пишет.Поэтому нам нужно, чтобы нагрузка была распределена по нескольким узлам.В случае операции чтения / записи данные должны быть распределены / агрегированы между несколькими серверами на основе коэффициента репликации. Как этого можно добиться с помощью mariaDB.

1 Ответ

0 голосов
/ 12 мая 2019

Рассмотрим кластер Galera с 3 узлами, каждый узел выполняет запись.

На каждом из этих узлов висит любое количество подчиненных только для чтения.

Если вам действительно нужен Sharding (из-за необходимости большего масштабирования записи, чем дает Galera), то настройте несколько кластеров Galera, каждый из которых содержит часть данных. Затем вставьте прокси-сервер перед всем этим, чтобы направить трафик в основной кластер.

Тем временем включите медленный журнал с низким значением long_query_time и посмотрите, сможете ли вы ускорить запросы.

...