flink从入门到放弃指南
一、流式数据处理简介
流式处理
实际应用中,不断产生的事件需要快速得到响应。作为应用程序想要处理无限、并发产生的事件流,且不想每次收到事件后就记录事件的状态。但是实际应用场景中,应用程序实际上是需要维护这样的信息的。即,当应用程序收到新事件时,需要从事件中读取数据或改变事件的状态。所以,有状态的流处理应用程序,通常会从已经记录的时间日志中提取输入事件(存储和分发时间流)。历史写入的事件日志是以附加的形式(对,就是类似kafka)写入。总之,有状态的流式应用十分广泛,如事件驱动应用程序;数据管道应用程序及数据分析应用程序。
事件驱动的应用程序通常会有日志来进行交互,通常交互节点本地保存本地状态,并不将相关状态写入到外部存储。事件日志通道通常将日志的发送者和接收者分离,并提供异步、非阻塞性的事件传输。同时事件日志提供了更好的性能,扩展性及容错性也大幅度提升。
数据管道通常提供较低的延迟,来提取和插入数据。比如不通存储系统之间同步数据的任务(ETL任务)。
流处理通常不是等待定期触发,而是连续地提取事件流,并通过纳入最新时间来更新其计算结果。具备实时的,精确的结果,同时支持调整计算资源。