我不明白,如果消息进程必须只处理一次,那么应该使用三叉戟是什么意思?我可以在baserichspout上使用ack()和fail()只处理一次消息吗?如果我不需要三叉戟的功能(例如groupping,jonning…),我可以使用baserich吗?
jq6vz3qz1#
storm支持“至少一次”进程,因为失败的消息将从一开始就被再次处理,这将导致一些重复。三叉戟是一种支持“精确一次”过程的方法。所以如果你在Storm中只需要处理一次信息,你就必须使用三叉戟。
1条答案
按热度按时间jq6vz3qz1#
storm支持“至少一次”进程,因为失败的消息将从一开始就被再次处理,这将导致一些重复。
三叉戟是一种支持“精确一次”过程的方法。
所以如果你在Storm中只需要处理一次信息,你就必须使用三叉戟。