Это пакет для хранения байтовых данных. Буфер реализует интерфейс io.ReadWriteCloser
,
через свой собственный интерфейс Buffer
который доступен в контейнере объектов.
Буфер состоит из 3-х компонентов, который реализует каждый свою стратегию хранения данных:
- Хранение данных в файле;
- Хранение данных в памяти приложения;
- [Хранение данных комбинированным методом](#Хранение данных комбинированным методом.).
Как следует из названия, хранит данные и в памяти и в файле, автоматически переключая место хранения, основываясь на показателе компонента "сканер занятой памяти", так же, при получении сигнала на закрытие приложения от компонента "отслеживание сигнала на закрытие приложения" сбрасывает все данные, которые хранились и оставались в памяти, в файл.
Выбор стратегии осуществляется через файл конфигурации:
type Config struct {
Strategy string
NameForMetric string
}
Описание полей:
Поле | Описание | Значение по умолчанию | Доступные значения |
---|---|---|---|
Strategy | Стратегия хранения данных, этот параметр может быть передан одним из 3-х методов: - флаг командной строки --buffer.strategy - переменная окружения BUFFER_STRATEGY - значение в конфиг файле buffer.strategy |
combination | - memory - хранения данных только в памяти; - file - хранения данных только в файле; - combination - комбинированная стратегия хранения. |
NameForMetric | Имя буфера в метриках, устанавливает в ручную, должно быть установлено на этапе конфигурирования приложения, до создание объекта буфера |