我不明白如果消息过程只能使用一次,应该使用 trident 是啥意思

Posted

技术标签:

【中文标题】我不明白如果消息过程只能使用一次,应该使用 trident 是啥意思【英文标题】:I don't understand what's mean that should use trident if the message process must only once我不明白如果消息过程只能使用一次,应该使用 trident 是什么意思 【发布时间】:2017-12-12 08:00:23 【问题描述】:

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

【问题讨论】:

【参考方案1】:

Storm 支持“至少一次”流程,失败的消息会从头开始处理,会造成一些重复。

Trident 是支持“exactly once”流程的一种方式。

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

【讨论】:

以上是关于我不明白如果消息过程只能使用一次,应该使用 trident 是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

错误打破了for循环:条件try语句?

原则 DBAL 交易

是否可能出现“Try / except ValueError UNLESS”?

尝试除错误检查

我不明白-Wl,-rpath -Wl,

我应该如何从我的数据库中获取所有消息并返回它