在使用实时计算 Flink 版时,如果上下游组件发生变配操作 (如增减分区、配置升级、节点扩缩容等,但不包括版本升级或集群迁移等操作),对于已运行中的作业,不同连接器的响应行为、注意事项以及操作建议。
连接器行为与操作建议
Flink 的 Failover 是指当 Flink 作业运行过程中发生故障(如任务失败、节点宕机等)时,系统自动恢复作业的能力。Failover 的目标是确保作业能够在发生故障后继续运行,并尽可能保证数据处理的正确性和一致性。
连接器 | 连接器响应行为与注意事项 | 操作建议 | 写入是否依赖Checkpoint |
Kafka分区增加后,Flink也会动态捕捉到分区变动。但是如果并发度与分区数不是倍数关系,可能导致分区分配不均。 | 先增加Kafka分区再合理调整并发度与分区保持倍数关系,保证分区消费均匀分配。例如分区数由3增加到8,可以调整并发度为4或者8。 | exactly once 语义依赖 | |
扩缩容或重启实例的过程中,会出现无法连接的情况,重试一定次数后,超时则会Failover,直到实例重启成功。 | 当前的Hologres源表根据tablename读取,建议无状态重启作业,不要复用原来作业状态启动。 | 不依赖 | |
| 作业会在Failover后适配分区变化。可以调整分区后,手动重启避免作业Failover。 | 不依赖 | |
如果扩缩容或重启实例导致数据库连接不可用,Flink 的 Failover 机制会检测到连接异常并触发任务重启。 在此过程中,如果数据库的链接地址没有发生变化且服务仍然可用,连接器会通过其内置的重连机制尝试重新建立连接,最终使任务成功恢复运行。 说明 工作原理 当连接器遇到外部系统故障时,首先尝试多次重试。如果重试成功,则任务继续正常运行,不会触发 Failover。 如果连接器的重试机制未能解决问题(如外部系统长时间不可用),则连接器会抛出异常,导致任务失败。此时,Flink 的 Failover 机制会被触发,按照配置的策略进行任务恢复。 Failover 机制会在任务恢复后重新调度任务,连接器也会再次尝试与外部系统建立连接。 | 扩缩容时应注意评估作业重启带来的影响。
说明 如果是主从切换或集群需要重启的情况,可能会造成短暂的连接中断。如果该行为持续时间较长,会触发Failover。如果不想触发Failover,可以先停止作业,等待变配完成后再重启作业。 | 不依赖 | |
不依赖 | |||
不依赖 | |||
不依赖 | |||
不依赖 | |||
不依赖 | |||
不依赖 | |||
不依赖 | |||
不依赖 | |||
不依赖 | |||
/ | |||
依赖 | |||
exactly once 语义依赖 | |||
降低配置时,如果配置的资源不足以支持当前作业以设定的并发度上传数据时,会导致一些子任务报错重试,直到有空闲的资源。 | 根据之前的业务流量进行评估来进行降配;或先降低作业的并发度后进行降配。 | Batch Tunnel 模式依赖 | |
暂不支持自动检查分区变化。 | 手动重启作业,以适应分区变化。 | 不依赖 | |
支持加减分片的无感扩缩容。调整实例规格后会导致短暂闪断,尝试重连多次失败后会导致Failover。 |
| 不依赖 | |
不依赖 | |||
如果 如果设置为true,则根据 |
| 不依赖 | |
| 自动适配可能导致数据重复消费,建议在分区变更前停止作业,并在变更后从Checkpoint启动以避免问题。 | 依赖 | |
一段时间内连接器没有数据,且buffer中也无数据发送,则需要依赖Checkpoint写入 | / | 依赖 | |
扩缩容不影响写入。 | / | 不依赖 | |
作业读取阶段,如果拓扑改变会造成 | 如果需要升降配,主节点切换或分片集群中分片的增减等拓扑变化,请停止作业,等待集群稳定后重启作业。 | 依赖 | |
通过维护独立的元数据层来描述数据的结构和状态,不涉及增减分区和节点扩缩容的操作。 | / | 依赖 | |
/ | 依赖 | ||
/ | 依赖 | ||
/ | 依赖 | ||
测试使用。 | / | / | |
/ | / | ||
/ | / | ||
/ | / |