flink richsink函数构造函数vs open()

2guxujil  于 2021-06-26  发布在  Flink
关注(0)|答案(1)|浏览(851)

假设我需要使用richsinkfunction实现一个自定义接收器,并且在接收器中需要一些变量,比如dbconnection。我应该在哪里初始化dbconnection?我在open()方法中看到了大多数初始化dbconnection的文章,为什么不在构造函数中呢?
下面的问题是什么样的变量应该在构造函数中初始化,什么样的变量应该在open()中初始化?

rqdpfwrv

rqdpfwrv1#

构造一个 RichFunction 仅在客户端调用。如果需要在集群上实际执行某些操作,那么应该在 open . open 如果要访问flink作业的参数或 RuntimeContext (用于状态、计数器等)。当你使用 open ,您还想使用 close 以对称的方式。
所以要回答你的问题:你的 DBConnection 应在中初始化 open 只是。在构造函数中,通常只在字段中存储作业常量参数,例如如果接收器可以跨多个具有不同数据结构的项目重用,则如何访问记录的键。

相关问题