storm如何实现bolt重复消费的问题

2023-04-07 22:29:00 消费 重复 如何实现

storm如何实现bolt重复消费的问题

storm采用了一种称为“消息驱动”的方式来实现bolt重复消费的问题。这种方式的基本思想是,当bolt收到一个消息时,它首先会将该消息发送给自己的一个内部队列,然后开始处理该消息。当bolt处理完该消息并将结果发送给下游组件时,它会从内部队列中删除该消息。如果在bolt处理消息的过程中出现错误,则bolt会重新将该消息放回内部队列,以便在稍后重新处理该消息。

这种方式的优点是,bolt可以自行决定何时处理消息,因此可以有效地利用bolt的计算能力。此外,bolt可以在处理消息时自行决定是否需要重新处理消息,这使得bolt更加灵活。

缺点是,如果bolt处理消息的速度跟不上消息的生成速度,则内部队列会膨胀,最终导致bolt被阻塞。此外,如果bolt处理消息的速度远远超过消息的生成速度,则内部队列中的消息会“老化”,最终导致bolt的性能下降。因此,bolt在实现重复消费的问题时需要考虑内部队列的规模问题。

相关文章