Перейти к основному содержимому
Версия: 2.0 (WIP)

Балансировка запросов в Redis

Балансировка нагрузки в контейнер(ы) Redis реализуются на уровне TCP при помощи Nginx. В API Gateway (сервис frontend) это делается следующим образом:

  1. Создается каталог streams в директории с конфигурацией приложения:

    mkdir -p ./data/nginx/streams
  2. Создается файл конфигурации следующего содержания:

    data/nginx/streams/redis.conf
    stream {
    upstream redis_docker {
    server redis:6379;
    }

    server {
    listen 6379;
    proxy_pass redis_docker;
    }
    }
  3. В файле docker-compose.additional.yml настраиваются реплики Redis и проброс конфигурации для frontend:

    docker-compose.additional.yml
    services:
    redis:
    deploy:
    replicas: 3
    frontend:
    ports:
    - "6379:6379"
    volumes:
    - type: bind
    source: ./data/nginx/streams
    target: /etc/nginx/streams
  4. Применяются все внесенные изменения:

    pamirctl start

Таким образом реализуется балансировка, при которой Redis может быть реплицирован на N-экземпляров средствами Compose, при этом, доступным извне, например, при реализации кластера Alertmanager.

Связанные разделы