Подтвердить что ты не робот

Storm vs. Trident: Когда не использовать Trident?

Я работаю с Storm, и это нормально для многих случаев использования. Недавно я просмотрел Trident, что является абстракцией уровня Storm на высоком уровне. Он поддерживает ровно-разовую обработку и упрощает обработку с учетом состояния.

Но теперь мне интересно.. Почему я не могу использовать Trident вместо Storm?

То, что я читал до сих пор:

  • Trident обрабатывает сообщения в пакетах, поэтому время передачи может быть больше.
  • Trident еще не способен обрабатывать циклы в топологиях.

Есть ли другие недостатки при использовании Trident вместо Storm? Потому что сейчас я считаю, что недостатки, перечисленные выше, являются незначительными.

Какие варианты использования не могут быть реализованы с помощью Trident?


Aftermath:

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

Их предположение заключалось в том, что в большинстве случаев мы нуждаемся в состоянии или только однократной обработке, или нам это понадобится в ближайшем будущем. Я понимаю их аргументацию, потому что переход от Шторма к Трезубцу или обратно - непростая трансформация, но, по моему личному мнению, концепция обработки потока без состояния не была понята всеми, и это было основной причиной использования Trident.

4b9b3361

Ответ 1

Чтобы ответить на ваш вопрос: когда вы не должны использовать Trident? Всякий раз, когда вы можете позволить себе этого не делать.

Trident добавляет сложности к топологии Storm, снижает производительность и генерирует состояние. Задайте себе вопрос: нужна ли вам "ровно один раз" семантика обработки Trident или вы можете жить с "хотя бы раз", обрабатывая семантику Storm. Для ровно один раз используйте Trident, иначе нет.

Я также хотел бы подчеркнуть тот факт, что Storm гарантирует, что все сообщения будут обработаны. Некоторые сообщения могут быть обработаны более одного раза.

Ответ 2

Если наименьшая возможная задержка является вашей целью, и вам не нужна точно некоторая обработка, то использование Storm лучше, чем Trident.

Ответ 3

Trident - это абстракция высокого уровня для выполнения вычислений в реальном времени поверх Twitter Storm, доступных в Storm 0.8.x. Storm представляет собой платформу обработки без учета состояния без учета состояния, а Trident обеспечивает обработку потока с сохранением состояния.

Ответ 4

Крис, поскольку эти два из них - технологии с открытым исходным кодом, трезубец является единственной реализацией сценария на вершине шторма, конечно, это привело к накладным расходам. Если трезубец не может удовлетворить ваши требования, вы создаете свою собственную государственную реализацию поверх бури. Trident привнесли проекты более высокого уровня, такие как Trident-ML.

Ответ 5

Предположим, мы хотим сделать фильтрацию + добавление поля в кортеж. если мы используем шторм, мы обычно используем 2 бота для фильтрации, добавление поля. так что снова нам нужно отправить кортеж на новый болт, может быть, используется глобальная группировка. поэтому здесь пропускная способность nw может стать узким местом.

используя трезубец, мы можем использовать выше, на одной машине. поэтому в этом случае перегруппировка не требуется. такой вариант использования в дополнение к "ровно один раз" / "на востоке один раз" может отличать, что использовать и т.д.

Trident - это группировка логической группировки