Мой поток не очень большой.Я передаю около 400 КБ данных каждые 2 секунды через конвейер Jet.
Я использую карты буферов для запуска потока по журналу событий с такой конфигурацией:
config.getMapEventJournalConfig(Constants.IMAP_TAGS_INFO_BUFFER)
.setEnabled(true)
.setCapacity(100)
.setTimeToLiveSeconds(10);
config.getMapEventJournalConfig(Constants.IMAP_TAGS_POSITIONS_BUFFER)
.setEnabled(true)
.setCapacity(100)
.setTimeToLiveSeconds(10);
Конвейер начинается в:
StreamStage<Map.Entry<String, List<TagPosition>>> sourceSteam = p.drawFrom(Sources.mapJournal(
Constants.IMAP_TAGS_POSITIONS_BUFFER,
Util.mapPutEvents(),
Util.mapEventToEntry(),
JournalInitialPosition.START_FROM_OLDEST))
Установка новых значений в картах буфера выполняется методом set () с заменой старого значения.
И после нескольких часов работы мое приложение достигает значения xmx, и Hazelcast закрывается.
Не могли бы вы проверить, если у меня неправильная конфигурация, или я должен профилировать мою заявку более подробно?Мое текущее предположение состоит в том, что журнал события не очищается, несмотря на установку емкости и времени жизни.
Заранее спасибо!
UPD: добавлен дамп кучи и диаграмма