Заказ и комплектация наборов в шторм с носиком кафки
Когда у нас есть топология, которая берет записи чтения из kafka, сохраняется ли входящий порядок при обработке событий?
Допустим, топология
A Kakfa spout -> B bolt -> C bolt -> D bolt -> H bolt
| ^
| |
-> E bolt -> F bolt -> G bolt
(Here B bolt can emit to either C or E bolt. Both D and G bolt output to H bolt)
И допустим события Кафки таковы
|1 | 2 | 3 | 4 | 5 | 6
скажем
Event 1 will take route A -> B -> E -> F -> G -> H
Event 2 will take route A -> B -> C -> D -> H
And A -> B -> E -> F -> G -> H route take longer time compared to A -> B -> C -> D -> H
у меня следующие вопросы
Может ли случиться так, что событие 2 придет к болту Н раньше, чем событие 1?
Поскольку событие 2 будет подтверждено всеми болтами раньше, чем событие 1, когда происходит подтверждение кафки для события 2? Только когда все события до события 2 были подтверждены?
а. Если да, это означает, что мы ограничены самым медленным событием для подтверждения события?
б. В случае смерти носика А мы будем повторять все события до этого?
в. Можно ли настроить, сколько сообщений может храниться неподтвержденным в каждом носике? Есть ли какая-либо метрика, которая может сказать мне в любой момент времени, сколько сообщений разархивировано в носителе на уровне раздела?