• Русский
  • Конфигурация параметров

    Экземпляр RabbitMQ по умолчанию использует системные параметры, предоставляемые RabbitMQ. Вы также можете удобно настроить параметры через интерфейс.

    Совет

    После обновления RabbitMQ, если есть параметры, которые необходимо удалить, устаревшие или изменённые, пожалуйста, обратитесь к официальному сайту RabbitMQ для соответствующих изменений.

    Внимание

    Обновление параметров приведёт к перезапуску экземпляра. Для стабильности вашего приложения обновляйте параметры в непиковое время.

    Процедура

    CLI
    Веб-консоль

    Параметры для дата-узлов экземпляра задаются через поле spec.rabbitmq.additionalConfig ресурса RabbitMQ CR.

    # Обновить конфигурацию дата-узла экземпляра s6
    $ kubectl -n default patch rabbitmqclusters <instance name> --type=merge --patch='{"spec": {"rabbitmq": {"additionalConfig":"channel_max=1000"}}}''

    Описание поддержки параметров

    Название параметраОписание параметраДиапазон значенийЗначение по умолчанию
    num_acceptors.tcpКоличество процессов Erlang, которые будут принимать подключения для TCP-листенеров.-num_acceptors.tcp = 10
    handshake_timeoutМаксимальное время для AMQP 0-9-1 handshake (после установления сокет-соединения и TLS handshake), в миллисекундах.-handshake_timeout = 10000
    vm_memory_high_watermark.relativeПорог памяти, при котором срабатывает управление потоком. Может быть абсолютным или относительным к объёму доступной ОС оперативной памяти.-vm_memory_high_watermark.relative = 0.4
    vm_memory_calculation_strategyСтратегия отчёта использования памятиallocated

    rss

    legacy

    erlang
    vm_memory_calculation_strategy = allocated
    vm_memory_high_watermark_paging_ratioДоля от порога высокого водяного знака, при которой очереди начинают выгружать сообщения на диск для освобождения памяти. См. документацию по управлению потоком на основе памяти.-vm_memory_high_watermark_paging_ratio = 0.5
    total_memory_available_override_valueПозволяет переопределить общий объём доступной памяти вместо вывода его из окружения с помощью средств ОС. Следует использовать только если фактический максимальный объём RAM, доступный узлу, не совпадает с выводимым узлом значением, например, из-за контейнеризации или подобных ограничений, неизвестных узлу. Значение может быть задано целым числом байт или в удобочитаемых единицах (например, 8GB). Например, при установке 4 ГБ узел считает, что работает на машине с 4 ГБ RAM.--
    disk_free_limit.absoluteЛимит свободного места на диске раздела, на котором RabbitMQ хранит данные. При снижении доступного места ниже этого лимита срабатывает управление потоком. Значение может быть задано относительно общего объёма RAM или как абсолютное значение в байтах либо в удобочитаемых единицах (например, 50MB или 5GB).-disk_free_limit.absolute = 50MB
    log.file.levelУправляет детализацией логирования. Значение — список пар категория события лога и уровень лога.error

    warning

    info

    debug
    log.file.level = info
    channel_maxМаксимально допустимое количество каналов, которые могут быть согласованы с клиентами, исключая специальный канал номер 0, используемый в протоколе. Установка в 0 означает «неограниченно», что опасно, так как приложения иногда могут иметь утечки каналов. Использование большего количества каналов увеличивает потребление памяти брокером.-channel_max = 2047
    channel_operation_timeoutТаймаут операции канала в миллисекундах (используется внутренне, не доступен напрямую клиентам из-за различий и ограничений протокола обмена сообщениями).-channel_operation_timeout = 15000
    max_message_sizeМаксимальный допустимый размер полезной нагрузки сообщения в байтах. Сообщения, превышающие этот размер, будут отклонены с соответствующим исключением канала.Макс. значение: 536870912max_message_size = 134217728
    heartbeatЗначение, представляющее таймаут heartbeat, предлагаемый сервером при согласовании параметров соединения. Если установлено в 0 на обеих сторонах, heartbeat отключены (что не рекомендуется). Подробнее см. руководство по Heartbeats.-heartbeat = 60
    default_vhostВиртуальный хост, создаваемый при создании RabbitMQ новой базы данных с нуля. В этом виртуальном хосте будет существовать обменник amq.rabbitmq.log.-default_vhost = /
    collect_statisticsРежим сбора статистики. В основном актуален для плагина управления.none

    coarse

    fine
    collect_statistics = none
    collect_statistics_intervalИнтервал сбора статистики в миллисекундах. В основном актуален для плагина управления.-collect_statistics_interval = 5000
    management_db_cache_multiplierВлияет на время кэширования дорогих запросов управления, таких как списки очередей, в плагине управления. Кэш умножает прошедшее время с последнего запроса на это значение и кэширует результат на этот период.-management_db_cache_multiplier = 5
    delegate_countКоличество процессов делегатов для внутрикластерного взаимодействия. На машинах с очень большим количеством ядер и входящих в кластер можно увеличить это значение.-delegate_count = 16
    hipe_compileНе использовать. Эта опция больше не поддерживается. Поддержка HiPE была удалена начиная с Erlang 22.-hipe_compile = false
    cluster_partition_handlingСпособ обработки сетевых разделений.ignore

    autoheal

    pause_minority

    pause_if_all_down
    cluster_partition_handling = ignore
    cluster_keepalive_intervalКак часто узлы должны отправлять друг другу keepalive-сообщения (в миллисекундах). Обратите внимание, что это не то же самое, что net_ticktime; пропущенные keepalive-сообщения не приведут к тому, что узлы будут считаться недоступными.-cluster_keepalive_interval = 10000
    queue_index_embed_msgs_belowРазмер в байтах сообщений, ниже которого сообщения будут встроены непосредственно в индекс очереди. Рекомендуется ознакомиться с документацией по настройке persister перед изменением этого параметра.-queue_index_embed_msgs_below = 4096
    mnesia_table_loading_retry_timeoutТаймаут ожидания доступности таблиц Mnesia в кластере.-mnesia_table_loading_retry_timeout = 30000
    mnesia_table_loading_retry_limitКоличество повторных попыток ожидания таблиц Mnesia при запуске кластера. Обратите внимание, что этот параметр не применяется к обновлениям Mnesia или удалению узлов.-mnesia_table_loading_retry_limit = 10
    mirroring_sync_batch_sizeРазмер пакета, используемый для передачи сообщений несинхронизированной реплике (зеркалу очереди). См. документацию по eager batch synchronization.-mirroring_sync_batch_size = 4096
    queue_master_locatorСтратегия расположения лидера очереди. Доступные стратегии:min-masters

    client-local

    random
    queue_master_locator = client-local

    Для получения информации о других поддерживаемых параметрах, пожалуйста, обратитесь к официальному сайту RabbitMQ.