Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте!
Хотел бы узнать если где-то готовая реализация балансировки подключения селектов к нескольким slave серверам или все таки это все нужно делать самому???
А то скоко не рылся народ пишет мол вообще
Посмотрите интерфейс mysql для того же PHP и вы наткнётесь на абсолютно фантастическую штуку -- достаточно лишь указать список всех slave серверов и он будет читать из них, а писать в master.
А ни примеров ни где почитать нету...
Неактивен
Про фантастическую штуку ничего не знаю, если узнаете — расскажите нам тоже, пожалуйста
Что касается балансировки — да, обычно пишут свой код. Дело в том, что от задачи к задаче
такая балансировка может варьироваться.
Два контрастных случая, чтобы не быть голословным.
Случай раз. Сайт с очень большой нагрузкой простыми запросами. Запросы проходят одиночно
и быстно, но их достаточно много. Пишется балансировщик, который просто тупо разбрасывает
запросы по серверам, при этом нет гарантии, что от одного и того же клиента запрос попадет на
тот же физический сервер. Зато разбрасывает быстро.
Случай два. Клиенты со сложными запросами. Клиент приходит со сложными запросами: он
создает временные таблицы, переменные, оперирует транзакциями. Если такого клиента посадить
на балансировщик из первого случая, то ничего не заработает — его последующий запрос, который
опирается на созданную транзакцию, уйдет на другой сервер, и возникнет ошибка. В таких случаях
тоже можно балансировать, но нужно быть аккуратнее — нужно явно клиентом показывать, когда
он «берет» соединение, и уметь обрабатывать ошибки (например, сервер умер в процессе работы
с клиентом).
P.S. Есть готовые решения типа mysqlproxy, но у них есть свои недостатки. В частности, mysqlproxy
не очень (даже, наверное, «очень не») хорошо работает с кодировками.
Неактивен