我不明白如果消息处理必须只有一次,应该使用三叉戟是什么意思

I don't understand what's mean that should use trident if the message process must only once

我不明白如果消息处理必须只进行一次,应该使用三叉戟是什么意思 我可以在 BaseRichSpout 上使用 ack() 和 fail() 只处理一次消息吗? 如果我不需要三叉戟的功能(eg. groupping, jonning..),我可以使用BaseRich吗?

Storm支持"at least once"流程,因为失败的消息会从头开始重新处理,这会导致一些重复。

Trident 是支持 "exactly once" 进程的一种方式。

所以如果你必须在storm中只处理一次消息,你必须使用trident。