У меня есть репликация mysql master-slave с 1 главным и 3 подчиненными устройствами. Теперь, когда я закончил настройку архитектуры, мне любопытно, как лучше всего читать. Я понимаю, что все операции записи, обновления и удаления будут направляться мастеру.
Нужно ли мне запускать другой сервер, на котором работает что-то вроде HAproxy, чтобы сбалансировать загрузку операций чтения для всех ведомых устройств? Можно ли мастеру загрузить считывания баланса? Было бы предпочтительно, чтобы все операции выполнялись на одной конечной точке, поэтому мне не нужно изменять логику на веб-уровне для чтения с одного IP (автономный балансировщик нагрузки) и записи, обновления и удаления на второй IP ( мастер ).
Есть ли стандартный способ обработки CRUD в архитектуре главный-подчиненный?
Вы можете использовать прокси, разработанный для MySQL, например Прокси MySQL или MaxScale, чтобы не только балансировать нагрузку на ваши запросы чтения, но и гарантировать, что записи направляются на мастер. С точки зрения клиентов, существует только одно соединение MySQL, что полезно для клиентов, которые не могут создавать отдельные соединения для чтения и записи.