2016-11-02 8 views
0

Скажем, у меня есть носик, который пропускает сообщения в теме в два потока (stream1 & stream2), и два болта потребляют сообщения из этих потоков (bolt1 -> stream1, bolt2 -> stream2). Теперь, если болт 2 не работает ack кортеж будет воспроизводиться сообщение только для болта 2? В соответствии с новым API-интерфейсом потребителя в шторме (apache-storm-1.0.2) реализован механизм повтора, в котором, если numFail> maxRetry, то кортеж подкрепляется штормом. Мое сомнение что происходит с сообщением после того, как оно подхвачено таким образом? будет ли он удален из самой очереди кафки? Если это так, мы потеряем некоторые сообщения, которые потерпели неудачу. Кто-то, пожалуйста, просветит меня на жизненном цикле кортежа, и что происходит с сообщением, начинающимся с кафки, чтобы штурмовать, когда он не может быть отброшен.Что происходит, когда болт не может получить кортеж, который он потребляет из определенного потока носика?

ответ

1

Если только один болт хранит кортеж, но не второй, кортеж будет переименован в оба болта.

Кроме того, если максимальное повторение достигнуто, Storm не будет пытаться отправить это сообщение снова и отказаться. Но он не будет удален исходным источником (в вашем случае это, кажется, Kafka, потому что с удалением сообщений в первую очередь невозможно).

+0

Выполняется что-то подобное -> если достигнуто maxRetries, сообщение передается другому потребителю в группе потребителей. Чтобы быть ясным, я пытаюсь использовать новый пользовательский API, предоставляемый в новейшей версии шторма (apache -storm-1.0.2). – Sushmitha

+0

№ Всплеск просто пропустит это сообщение и обработает следующий. –

+0

Я намеренно устанавливаю collector.fail (кортеж) в моем классе болтов. Но сообщения не воспроизводятся носиком. Можете ли вы сказать мне, что может быть возможной причиной. Когда я отправляю сообщение на этот болт, он печатается, так как у меня есть оператор печати, после которого я делаю collector.fail (tuple). Поэтому я ожидаю, что сообщение будет воспроизведено носиком, и столько раз одно и то же сообщение должно печататься, чего не происходит. Я пытаюсь использовать новый API-интерфейс для пользователей, предоставляемый в новейшей версии шторма (apache-storm-1.0.2). – Sushmitha