上QQ阅读APP看书,第一时间看更新
1.2 连续事件处理的目标
能够以非常低的延迟处理数据,这并不是流处理的唯一优势。人们希望流处理不仅做到低延迟和高吞吐,还可以处理中断。优秀的流处理技术应该能使系统在崩溃之后重新启动,并且产出准确的结果;换句话说,优秀的流处理技术可以容错,而且能保证exactly-once。
与此同时,获得这种程度的容错性所采用的技术还需要在没有数据错误的情况下不产生太大的开销。这种技术需要能够基于事件发生的时间(而不是随意地设置处理间隔)来保证按照正确的顺序跟踪事件。对于开发人员而言,不论是写代码还是修正错误,系统都要容易操作和维护。同样重要的是,系统生成的结果需要与事件实际发生的顺序一致,比如能够处理乱序事件流(一个很不幸但无法避免的事实),以及能够准确地替换流数据(在审计或者调试时很有用)。