2014-10-13 3 views
1

Это сборщик мусора по умолчанию в Storm и почему?Сбор мусора в Apache Storm

Может кто-нибудь объяснить, что происходит с кортежами в памяти после того, как они признаны Болтом?

ответ

0

Поскольку Apache Storm - это проект на основе JVM, тогда, когда дело доходит до сбора мусора, будет использоваться политика сбора мусора, используемая процессом Storm JVM.

Возможно, я ошибаюсь, но мне кажется, что вы смешиваете две вещи здесь: процесс JVM GC и Storm Acknowledge.

Вот как признают в Apache Буря была создана:

Apache Грозовые носики держать сообщения (события) в своих выходных очередях, пока они не подтверждается. Подтверждение происходит только после успешной обработки сообщения (события) топологией. Если для сообщения (события) в течение разумного промежутка времени приходит подтверждение, то носители очищают сообщение от очереди вывода. Если подтверждение не наступило в течение предопределенного периода (по умолчанию 30 секунд), то носик снова воспроизводит сообщение через топологию.

Следует читать: Guaranteeing Message Processing.

+0

Извините, я немного смущен вашим ответом. Я думаю, что буря не хранит полные сообщения в памяти. В принципе, реализация носика отвечает за повторное излучение, когда кортеж не завершился. Поэтому шторм не нужно сохранять значения кортежа. Он только сохраняет идентификатор сообщения и данные, используемые для идентификации задачи носика, не так ли? – fhussonnois

+0

Эй спасибо за это. Но ваш ответ поднял мне больше вопросов. Позвольте мне рассказать о моей работе - Я запускаю кластер штормов и отслеживаю метрики jvm каждого рабочего. Я заметил, что каждый раз, когда количество сборщиков мусора достигает определенного значения, оно занимает так много времени процессора, что рабочий не может послать пульс. Таким образом, нимб думает, что рабочий мертв и перебалансирует топологию. Когда я сменил GC на ParNewGC с CMS по умолчанию, который используется в шторме, эта проблема исчезла. Это связано с GC в шторме? Как я могу это исправить? – paalaak