Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 访问Flink子任务中的单例对象_Multithreading_Thread Safety_Singleton_Apache Flink_Flink Streaming - Fatal编程技术网

Multithreading 访问Flink子任务中的单例对象

Multithreading 访问Flink子任务中的单例对象,multithreading,thread-safety,singleton,apache-flink,flink-streaming,Multithreading,Thread Safety,Singleton,Apache Flink,Flink Streaming,我有一个singleton类,负责检索池连接。我想知道从Flink子任务访问这个单例类的对象的最佳方式是什么,因为在多线程环境中存在单例对象初始化的潜在问题。最好使用synchronized关键字锁定singleton类的初始化,还是有更好的方法在Flink运行时实例化singleton对象?在Flink中使用singleton模式是个坏主意,因为多个子任务是在不同的机器(不同的插槽)上计算的。 所以,如果您想使用所有机器的单一状态,最好将该状态保留在数据库中,并在数据库事务中修改它。如果每个f

我有一个singleton类,负责检索池连接。我想知道从Flink子任务访问这个单例类的对象的最佳方式是什么,因为在多线程环境中存在单例对象初始化的潜在问题。最好使用
synchronized
关键字锁定singleton类的初始化,还是有更好的方法在Flink运行时实例化singleton对象?

在Flink中使用singleton模式是个坏主意,因为多个子任务是在不同的机器(不同的插槽)上计算的。
所以,如果您想使用所有机器的单一状态,最好将该状态保留在数据库中,并在数据库事务中修改它。如果每个flink插槽只需要一个单例对象(即重对象,如数据库连接),则可以在RichFunction实现的open(…)方法中创建它

在flink中使用单例模式是个坏主意,因为多个子任务是在不同的机器(不同的插槽)上计算的。 所以,如果您想使用所有机器的单一状态,最好将该状态保留在数据库中,并在数据库事务中修改它。如果每个flink插槽只需要一个单例对象(如数据库连接等重对象),则可以在RichFunction实现的open(…)方法中创建它