#Конфигурация параметров
Экземпляр RabbitMQ по умолчанию использует системные параметры, предоставляемые RabbitMQ. Вы также можете удобно настроить параметры через интерфейс.
После обновления RabbitMQ, если есть параметры, которые необходимо удалить, устаревшие или изменённые, пожалуйста, обратитесь к официальному сайту RabbitMQ для соответствующих изменений.
Обновление параметров приведёт к перезапуску экземпляра. Для стабильности вашего приложения обновляйте параметры в непиковое время.
#Процедура
Параметры для дата-узлов экземпляра задаются через поле spec.rabbitmq.additionalConfig ресурса RabbitMQ CR.
# Обновить конфигурацию дата-узла экземпляра s6
$ kubectl -n default patch rabbitmqclusters <instance name> --type=merge --patch='{"spec": {"rabbitmq": {"additionalConfig":"channel_max=1000"}}}''-
Нажмите RabbitMQ в левой навигационной панели.
-
Нажмите на namespace name.
-
Нажмите на instance name.
-
Во вкладке Parameter нажмите Update Parameters.
-
Установите параметры.
-
Нажмите Update.
#Описание поддержки параметров
| Название параметра | Описание параметра | Диапазон значений | Значение по умолчанию |
|---|---|---|---|
| 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 | Максимальный допустимый размер полезной нагрузки сообщения в байтах. Сообщения, превышающие этот размер, будут отклонены с соответствующим исключением канала. | Макс. значение: 536870912 | max_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.