Flink CDC全量快照是单线程的吗?从日志里面看不是单线程的,但是代码里面又没看到是怎么控制的,日志看似乎只有两个线程,我并行度设置的8
Flink的CDC全量快照是由多个线程同时进行的。这是因为Flink的CDC全量快照是基于Flink的SnapshotStrategy实现的,而这个策略默认就是多线程的。
在Flink的源代码中,你可以找到如下关于SnapshotStrategy的注释:
/
* This class is the base implementation of a snapshot strategy. It is used by {@link StreamingFileSink} to
* create snapshots for checkpointing.
*
* <p>The default implementation creates asynchronous snapshots in multiple threads. Subclasses can override
* this behavior.
*/
public abstract class SnapshotStrategy {
// ...
}
这里明确说明了,SnapshotStrategy的默认实现是多线程的。
至于你看到的日志中只有两个线程,这可能是因为你的Flink集群的并发度设置得比较低,或者是你的数据源的并行度设置得比较低。你可以通过调整Flink的并行度参数来改变这种状况。
您好!在Flink CDC中全量快照并不是完全意义上的单线程,而是由若干个线程并发进行。一般来说,全量快照是由若干个工作者进程一起进行的,并且每个工作进程都有自己的本地状态存储,用于缓存整个快照过程中的数据。
关于具体的线程数,可以由Flink CDC的并行度参数来控制。默认情况下,单个工作进程会有至少2个线程进行快照工作,您可以自行调整并行度参数来达到理想的效果。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。