You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 海风 <18...@163.com> on 2023/06/15 14:07:48 UTC

回复:(无主题)

多谢多谢



---- 回复的原邮件 ----
| 发件人 | Weihua Hu<hu...@gmail.com> |
| 日期 | 2023年06月14日 12:32 |
| 收件人 | user-zh@flink.apache.org |
| 抄送至 | |
| 主题 | Re: (无主题) |
>
> 这个状态变量是否需要用transient来修饰

ValueState 再 Rich fuction 的 open 方法中被初始化,不应该被序列化和反序列化,建议使用 transient 来修饰。
但实际上自定义函数的序列化、反序列化只在任务部署阶段执行,而且初始状态下 ValueState 的值是 null,所以不使用 transient
关键字也不会有太大的影响。

以及什么情况下flink代码中需要用transient来修饰变量,什么情况下不用transient来修饰

理解自定义函数的序列化、反序列化是在任务部署阶段执行之后,这个问题就比较好回答了。 如果你的变量在是函数的 open 方法内初始化的,那应该增加
transient 关键字来表明该字段不需要参与序列化


Best,
Weihua


On Tue, Jun 13, 2023 at 1:10 PM Paul <18...@163.com> wrote:

> 在flink处理函数中定义一个状态变量,比如private ValueState<String>
> vs;这个状态变量是否需要用transient来修饰,为什么呢?以及什么情况下flink代码中需要用transient来修饰变量,什么情况下不用transient来修饰?请大家指教
>
>
>