Размер потоков Кафки в магазине памяти - PullRequest
0 голосов
/ 23 октября 2018

Я делаю агрегацию в потоке тем Кафки и сохраняю в хранилище состояний в памяти.Хотелось бы узнать точный размер накопленных в памяти данных, можно ли это найти?

Я просмотрел метрики jmx на jconsole и Confluent Control Center, но ничего не показалось актуальным, могу ли я что-нибудь использоватьчтобы узнать это, пожалуйста?

1 Ответ

0 голосов
/ 24 октября 2018

Вы можете получить количество сохраненных пар ключ-значение в хранилище в памяти через KeyValueStore#approximateNumEntries() (для реализации по умолчанию в хранилище в памяти это число на самом деле является точным).Если вы можете оценить размер байта для пары ключ-значение, вы можете выполнить математику.

Тем не менее, оценка размера объекта в байтах в Java довольно сложна в целом.Проблема в том, что Java не предоставляет какого-либо способа получить фактический размер объекта.Кроме того, объекты могут быть вложенными, что делает его еще сложнее.Наконец, помимо фактических данных, для каждого объекта всегда есть некоторые издержки метаданных, и эти издержки зависят от реализации JVM.

...