В конфиге HAProxy указаны только IP-адреса и порты Sentinel, а не самого Redis-мастера, куда отправляется запрос?
Действительно, в конфигурации HAProxy указаны только IP-адреса и порты Sentinel, а не самого Redis-мастера. Вот как это работает:
- HAProxy через Sentinel: Изначально HAProxy подключается к Sentinel по IP и порту 26379 для того, чтобы запросить у него информацию о текущем мастере Redis. Sentinel знает, какой сервер Redis в данный момент является мастером и вернет его IP-адрес и порт.
- Перенаправление трафика на мастера: После получения информации о мастере HAProxy направляет все запросы уже непосредственно на Redis-мастер по его IP и порту, который HAProxy узнал от Sentinel.
Вот ключевой момент: Sentinel выступает в роли посредника, который сообщает HAProxy, куда направлять трафик. HAProxy сам по себе не знает, какой из серверов является мастером, пока не получит эту информацию через команды, описанные ранее в конфигурации (через tcp-check
и Sentinel).
Таким образом, фактический трафик к Redis идет на IP и порт мастера, но они динамически определяются через Sentinel.
Если нужно подробнее рассмотреть, как это настроить и протестировать, могу предложить примеры плейбуков Ansible для этой задачи!
Recommended Posts
Шаблон jinja2 для конфига redis sentinel
18.02.2024
Шаблон jinja2 для конфига Redis
17.02.2024