[英]Delayed queue / message processing in Storm
在我的Storm拓扑中,在处理流时,我想延迟处理某些消息,直到将来某些时间点。 这样做的合理选择是什么?
到目前为止,我已经考虑过以下几点:
Thread.sleep
。 (但是,根据一些讨论,这不是有效利用Storm资源的推荐方法。) 我们使用拓扑结构元组来批量处理挂起的元组。 它基本上只是将它们存储在每个正常元组的内存中,当它收到一个tick元组时,它使用批量/流水线处理将它们处理成存储/索引。
如果卷的峰值检测到所有元组都重定向到每个主机上的本地redis存储,然后在卷停止后被推回拓扑处理,我们也会在数量激增的情况下使用redis。 我们的情况可能不适用于你的,只是我的2c。
使用外部消息队列来实现延时队列。
由于Storm是容错的并且是水平分布的,因此选择适合该样式的消息队列是有意义的,例如:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.