Предпочтительный подход для инфраструктуры MySQL - веб-сайт электронной коммерции
Мы использовали конфигурацию "ведущий-ведомый" Percona Mysql для нашего веб-сайта электронной коммерции, то есть один ведущий и 2 ведомых только для чтения, а также дополнительный ведомый для выполнения резервного копирования и создания отчетов.
Мы заметили, что нагрузка не распределяется, так как наш главный сервер загружен всеми операциями записи, а ведомые устройства просто используются для операций чтения.
Учитывая это ограничение, мы планируем усовершенствовать нашу инфраструктуру БД.
Один из вариантов, который у нас есть, - это переход к кластеру Percona XtraDB (мастер-мастер).
Пожалуйста, предложите любой другой предпочтительный подход, который может быть полезен для сайта электронной коммерции.
С уважением
Чарльз
2 ответа
Мы заметили, что нагрузка не распределяется
Это на 100% правильно. Async Master-Slave не является автоматической распределенной настройкой. Вы должны либо A) кодировать свое приложение, чтобы использовать все серверы, либо B) использовать промежуточное программное обеспечение для распределения соединений (например, ProxySQL).
Учитывая это ограничение...
Это не ограничение; это стандартное поведение с тех пор, как репликация была впервые добавлена в MySQL.
Один из вариантов, который у нас есть, - это переход к кластеру Percona XtraDB (мастер-мастер).
Percona XtraDB Cluster - это не "мастер-мастер". "master-master" - это термин асинхронной репликации, ограниченный двумя серверами MySQL. PXC является кластером и использует синхронную репликацию, что означает, что все узлы участвуют как одно целое.
Настройка master / slave-slave (как у вас) должна легко обрабатывать несколько тысяч соединений / транзакций в секунду. Если ваша текущая настройка не может справиться с этим, у вас либо A) серьезно неправильно настроен MySQL и / или B) крайне низкое аппаратное обеспечение.
Пожалуйста, поймите, что переход на PXC/Galera также не будет автоматически балансировать соединения / запросы. В этом случае вам также потребуется промежуточное программное обеспечение. Все записи будут по-прежнему идти на 1 узел, даже в PXC.
Вы можете использовать решение Galera Cluster. Мы используем это с MariaDB для большого API с сотнями запросов.
Если вы хотите больше деталей, просто напишите мне. Попробуй;)