apache flink和rxjava的用法

mcdcgff0  于 2021-06-25  发布在  Flink
关注(0)|答案(2)|浏览(683)

我目前正在使用apache flink并在其中使用rxjava,我的问题是:两者都使用合适吗?因为我的flink操作总是Map函数,在它们里面我密集地使用rx,比如从flink中提取元组,并用它们进行异步操作(转到db,写入队列等等),但我并没有使用flink向我公开的大多数方法,当rxjava结束处理时,我的程序步骤返回json。
你能告诉我这是不是flink的正确用法,或者有没有更好的方法来做我需要做的事情(喜欢用它,但通过Flink之间的步骤或类似的观察)。
谢谢。

brjng4g3

brjng4g31#

目前的答案仍然适用于尽可能将状态保持在flink中,但是如果您仍然需要访问外部系统,则可以使用性能异步i/o方法。异步操作符连接到flink的生命周期中并管理并发异步请求的数量,希望能够控制内存问题。

pgx2nnw8

pgx2nnw82#

flink有强大的工具来处理状态(例如在windows中)[1,2],这通常可以避免对其他系统的调用。例如,您可以在flink中使用(检查点)keyvaluestate,而不是在外部键值存储中处理状态。处理flink内部的状态通常比调用外部系统/数据库更有效/更快。
flink程序中异步调用的一个问题是,flink比被调用的系统快,这会导致开放未来的数量增加,最终导致内存问题。因此,我认为,通常建议在flink操作符内部使用同步调用,以将flink减慢到被调用系统的速度,以避免内存泄漏。
最近在邮件列表中讨论了最后一点:http://mail-archives.apache.org/mod_mbox/flink-user/201606.mbox/%3ccalrnvjvw=iu7pb76vmkk+bd6rdxfsdwxpmrtzk8=l5d8xe-o8q@mail.gmail.com%3e
[1] https://ci.apache.org/projects/flink/flink-docs-release-1.0/apis/streaming/windows.html [2]https://ci.apache.org/projects/flink/flink-docs-release-1.0/apis/streaming/state.html

相关问题