Skip to Content
Flink基础教程
book

Flink基础教程

by Ellen Friedman, Kostas Tzoumas
August 2018
Intermediate to advanced
98 pages
2h 11m
Chinese
Posts & Telecom Press
Content preview from Flink基础教程
50
5
无状态流处理
操作 操作
状态
有状态流处理
5-1:无状态流处理与有状态流处理的区别。输入记录由黑条表示。无状态流处
理每次只转换一条输入记录,并且仅根据最新的输入记录输出结果(白条)。有状态
流处理维护所有已处理记录的状态值,并根据每条新输入的记录更新状态,因此输
出记录(灰条)反映的是综合考虑多个事件之后的结果
尽管无状态的计算很重要,但是流处理对有状态的计算更感兴趣。事实上,
正确地实现有状态的计算比实现无状态的计算难得多。旧的流处理系统并
不支持有状态的计算,而新一代的流处理系统则将状态及其正确性视为重
中之重。
5.1
 一致性
当在分布式系统中引入状态时,自然也引入了一致性问题。一致性实际上
是“正确性级别”的另一种说法,即在成功处理故障并恢复之后得到的结
果,与没有发生任何故障时得到的结果相比,前者有多正确?举例来说,
假设要对最近一小时登录的用户计数。在系统经历故障之后,计数结果是
多少?在流处理中,一致性分为
3
个级别。
at-most-once
:这其实是没有正确性保障的委婉说法——故障发生之后,
计数结果可能丢失。
at-least-once
:这表示计数结果可能大于正确值,但绝不会小于正确值。
也就是说,计数程序在发生故障后可能多算,但是绝不会少算。
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

机器学习流水线实战

机器学习流水线实战

Hannes Hapke, Catherine Nelson
Kafka权威指南(第2版)

Kafka权威指南(第2版)

Gwen Shapira, Todd Palino, Rajini Sivaram, Krit Petty
Java并发编程实战

Java并发编程实战

Brian Goetz, Tim Peierls

Publisher Resources

ISBN: 9787115490063