Как ограничить размер 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 будет увеличиваться.

Другие вопросы по тегам