在开始学习流处理时,我听到以下两个技术项:有状态流处理和无状态流处理,它们之间有什么区别?我听说风暴是无国籍的,而风暴三叉戟是有状态的,所以在实践中,在哪里使用风暴以及在哪里使用风暴三叉戟?有状态和无状态流处理
2
A
回答
6
两者之间的差异在很高的级别上,您必须对它们执行的操作类型。
某些操作是无状态的,即您一次处理一条记录。 想象一下,银行出纳员可以一次处理一批客户。每个客户都是不依赖于以前的新工作单元。
有状态的操作就像是雇用一名新员工。你有一群人来接受采访,但是如果你雇用他们,取决于你的状态,也就是说你打开了什么职位。
例如,假设您正在处理网络日志。如果您想知道每秒有多少用户正在查看网页,则您的处理为几乎为无状态:每秒计算每页有多少用户。每一秒钟,你都不在乎前一秒的结果。这是无国籍的行动。
让我们来说说,而不是你想要计算的下一秒将有多少用户的预测。您希望平均过去10分钟,因此您需要保留最后10 * 60秒的队列 - 这就是您需要保留以供处理的状态,并且您需要每秒更新一次,以保持最最近10分钟的状态。 这当然是有状态的操作。 更简单的有状态操作只是计算自该网站开始以来的页面浏览总数。
这两个操作之间的一个关键区别是,如果流停止并且您重置系统,则必须注意保存状态。 无状态操作没有任何状态来保存,因此通常更简单。
相关问题
- 1. 有状态的流Spark处理
- 2. Nhibernate:批处理和无状态会话
- 3. TestFlight处理状态
- 4. 处理工作流的'Faulted'状态
- 5. 处于活动状态和非活动状态的状态图
- 6. 有状态与无状态Web服务
- 7. 具有无状态的分层状态
- 8. Keras - 有状态vs无状态LSTM
- 9. Angular 2无状态或有状态?
- 10. 无状态与有状态的bean
- 11. HTTPS有状态还是无状态?
- 12. 有状态Web服务与(状态Bean +无状态WS)
- 13. AVPlayer流状态
- 14. AVQueuePlayer流状态?
- 15. 无状态和有状态小部件有什么区别?
- 16. 有状态和无状态lambda表达式有什么区别?
- 17. Gwan处理程序状态
- 18. Ember js状态处理
- 19. Caliburn Micro WinRT状态处理
- 20. Java Swing处理状态
- 21. Android kSOAP处理“302状态”
- 22. 处理状态栏通知
- 23. 处理按钮状态
- 24. 处理不同的状态
- 25. 处理HTTP状态500
- 26. 状态和无状态beans不要节省Wildfly状态(只有单保存)
- 27. 状态:12152和状态:12029
- 28. 流程图和状态机
- 29. NSUndoManager处于无效状态
- 30. React动态表单状态处理