Как ограничить размер raft.log на потоковом сервере nats?
Я настроил потоковый сервер nats в режиме кластера (в соответствии с инструкциями, приведенными здесь) и заметил, что raft.log очень быстро растет, когда я тестирую его с нагрузкой около 200 мсг / с, где размер сообщения составляет ~1 МБ.
Я использую настройки канала по умолчанию:
---------- Store Limits ----------
Channels: 100 *
--------- Channels Limits --------
Subscriptions: 1000 *
Messages : 1000000 *
Bytes : 976.56 MB *
Age : unlimited *
Inactivity : unlimited *
Существуют ли какие-либо параметры конфигурации, которые могут помочь ограничить размер или усечь файл?
1 ответ
Мы используем go.etcd.io/boltdb для бэкэнда журнала RAFT, и это не предлагает усечение / сжатие. Журнал содержит все данные, реплицированные в потоковой системе NATS, но когда узлы синхронизированы, моментальные снимки должны появляться с некоторым случайным (но не менее 2 минут) интервалом. Это должно позволить RAFT удалять записи из своего журнала, что означает, что при добавлении новых данных свободное пространство должно использоваться повторно и не приводить к увеличению основного файла журнала. Конечно, если скорость / объем добавленных данных превышает свободное пространство из предыдущего снимка, файл raft.log будет увеличиваться.