Как правило, вы должны выполнять расщепление R / W в рамках, потому что только оно может понять контекст.В PHP я делаю это, поддерживая два соединения - одно для записи и одно для чтения и решаю, что вы хотите явно в своем коде.Причина этого в том, что это не так просто, как разделение по типу запроса.Например, если вы запускаете транзакцию в соединении записи, вы хотите, чтобы все операции чтения внутри него также проходили через это, иначе они будут вне транзакции и, вероятно, получат старые данные или будут зациклены на блокировках.
Если ваша рабочая нагрузка не составляет на самом деле для чтения, репликация - , а не - решение для масштабирования, поскольку задержка репликации приведет к устаревшим результатам.Мастер-мастер не такой уж особенный - это всего лишь два экземпляра «мастер-раб», но вы не должны ошибаться, пытаясь написать обоим мастерам, когда вы просите кошмаров с раздвоенным мозгом.
КонфигурацияМне действительно нравится использовать ммм с парой мастер-мастер.Это делает аварийное переключение и резервирование действительно простым и прозрачным для приложений, и это прекрасно работает.