Понимание HAProxy для балансировки нагрузки в кластере Galera

#mysql #proxy #haproxy #galera

#mysql #прокси #haproxy #galera

Вопрос:

Я новичок в программной архитектуре, и у меня есть несколько вопросов:

Я не понимаю, какие запросы отправляются в HAProxy на этом изображении.
Я имею в виду: если один сервер «Приложений» (серверная часть) хочет сохранить данные в кластере Galera, какой запрос будет отправлен на HAProxy?
Является ли это sql-запросом «request»?
Если это sql-запрос, должен ли серверу HAProxy нужен mysql-сервер для «обработки» соединения?
Должен ли сервер приложений быть настроен для установления sql-соединения с HAProxy?

От: https://fromdual.com/making-haproxy-high-available-for-mysql-galera-cluster
введите описание изображения здесь

Спасибо!

Ответ №1:

Приложению нужно знать только IP-адрес VIP в этой архитектуре. Приложение подключается к этому VIP с помощью соединителя MySQL, как если бы это был сервер MySQL.

Затем «Запросы» представляют собой TCP / IP-соединения с отслеживанием состояния с использованием протокола MySQL, как если бы приложение было подключено непосредственно к узлу MySQL.

Это не серия HTTP-запросов без состояния. Возможно, вы предполагаете, что HAProxy предназначен только для балансировки нагрузки http-запросов. Фактически, HAProxy можно использовать для других протоколов, кроме http.

Комментарии:

1. Спасибо! Мне это кажется более понятным. Еще один вопрос: является ли keepalived, который создает VIP? Или мне нужно сделать это самому?

2. Keepalived создает VIP. Насколько я знаю, вам решать выбрать IP-адрес в вашей подсети, который еще не используется другими хостами.

3. Понятно! Спасибо!!!

4. Другой вопрос, должен ли кластер Galera находиться в той же сети? Я имею в виду, возможно ли иметь один узел Galera и другой узел на совершенно другом сервере?? Спасибо

5. @TheoCerutti нет, Galera не обязательно должна находиться в одной сети. Пока хосты могут связываться друг с другом через соответствующие порты, это будет работать.