使用 Apache Storm 时是否必须使用 Apache Kafka?

Is it compulsory to use Apache Kafka while using Apache storm?

我想在我的项目中实现实时消息处理的 Storm。我观察到许多人将 'Apache Kafka' 与 'Storm'.

一起使用

在我的项目中,客户端应用程序将消息发送到服务器端,服务器端应该对消息进行身份验证、处理它们并将其存储到 HBase 中。唯一的限制是消息不应该被丢弃,每条消息都必须持久化到 HBase 中,如果处理该消息需要几分钟就可以了。

我想知道

  1. 是否必须将 Kafka 与 Storm 一起使用?
  2. 将 Kafka 与 Storm 结合使用有什么优势?
  3. 如果不使用带storm的Kafka会怎样?

请大家指教一下Kafka的使用方法

  1. Kafka不需要和Storm一起使用。两个系统相互独立
  2. Kafka 是一个可靠的消息队列,因此有助于 Storm 拓扑提供容错(即,它简化了所谓的可靠 Spout 的实现)
  3. 参见 (2) -> 也就是说,如果你想有容错保证,你需要自己关心 Spouts 的可靠性

如果您想在将传入消息持久化到 HBase 之前在 Storm 中对其进行处理和验证,我建议您使用 Kafka。 Kafka 将充当缓冲区,其中可靠地存储每个传入消息。 Storm可以消费来自Kafka的消息。如果消息在 Storm 中丢失,可以从 Kafka 重新读取该消息。将消息持久化到HBase后,Kafka可以丢弃消息。