全部產品
Search
文件中心

Realtime Compute for Apache Flink:上下遊組件擴縮容與增減分區對作業的影響及操作建議

更新時間:May 17, 2025

在使用Realtime Compute Flink 版時,如果上下遊組件發生變更配置操作 (如增減分區、配置升級、節點擴縮容等,但不包括版本升級或叢集遷移等操作),對於已運行中的作業,不同連接器的響應行為、注意事項以及操作建議。

連接器行為與操作建議

說明

Flink 的 Failover 是指當 Flink 作業運行過程中發生故障(如任務失敗、節點宕機等)時,系統自動回復作業的能力。Failover 的目標是確保作業能夠在發生故障後繼續運行,並儘可能保證資料處理的正確性和一致性。

連接器

連接器響應行為與注意事項

操作建議

寫入是否依賴Checkpoint

訊息佇列Kafka

Kafka分區增加後,Flink也會動態捕捉到分區變動。但是如果並發度與分區數不是倍數關係,可能導致分區分配不均。

先增加Kafka分區再合理調整並發度與分區保持倍數關係,保證分區消費均勻分配。例如分區數由3增加到8,可以調整並發度為4或者8。

exactly once

語義依賴

Upsert Kafka

即時數倉Hologres

擴縮容或重啟執行個體的過程中,會出現無法串連的情況,重試一定次數後,逾時則會Failover,直到執行個體重啟成功。

當前的Hologres源表根據tablename讀取,建議無狀態重啟作業,不要複用原來作業狀態啟動。

不依賴

Log ServiceSLS

  • VVR 8.0.8及以下版本:作業會通過Failover適配分區變化。

  • VVR 8.0.9及以上版本:可配置enableNewSource為true,作業不會Failover,可以配合shardDiscoveryIntervalMs設定動態檢測分區變化的時間間隔。

作業會在Failover後適配分區變化。可以調整分區後,手動重啟避免作業Failover。

不依賴

MySQL

如果擴縮容或重啟執行個體導致資料庫連接不可用,Flink 的 Failover 機制會檢測到串連異常並觸發任務重啟。

在此過程中,如果資料庫的連結地址沒有發生變化且服務仍然可用,連接器會通過其內建的重連機制嘗試重建立立串連,最終使任務成功恢複運行。

說明

工作原理

當連接器遇到外部系統故障時,首先嘗試多次重試。如果重試成功,則任務繼續正常運行,不會觸發 Failover。

如果連接器的重試機制未能解決問題(如外部系統長時間不可用),則連接器會拋出異常,導致任務失敗。此時,Flink 的 Failover 機制會被觸發,按照配置的策略進行任務恢複。

Failover 機制會在任務恢複後重新調度任務,連接器也會再次嘗試與外部系統建立串連。

擴縮容時應注意評估作業重啟帶來的影響。

  • 連結地址發生變化

    需要修改作業對應參數,重新部署啟動。

  • 連結地址沒有變化

    無需重啟作業。

說明

如果是主從切換或叢集需要重啟的情況,可能會造成短暫的串連中斷。如果該行為期間較長,會觸發Failover。如果不想觸發Failover,可以先停止作業,等待變更配置完成後再重啟作業。

不依賴

雲資料庫RDS MySQL版

不依賴

JDBC

不依賴

雲原生資料倉儲AnalyticDB PostgreSQL版

不依賴

雲原生據倉庫 ADB MySQL版 3.0

不依賴

時序資料庫InfluxDB

不依賴

OceanBase(公測中)

不依賴

PolarDB PostgreSQL版

不依賴

雲原生多模資料庫Lindorm

不依賴

ApsaraDB for HBase

不依賴

Postgres CDC(公測中)

/

Elasticsearch

依賴

StarRocks

exactly once

語義依賴

MaxCompute

降低配置時,如果配置的資源不足以支援當前作業以設定的並發度上傳資料時,會導致一些子任務報錯重試,直到有閒置資源。

根據之前的業務流量進行評估來進行降配;或先降低作業的並發度後進行降配。

Batch Tunnel

模式依賴

資料匯流排DataHub

暫不支援自動檢查分區變化。

手動重啟作業,以適應分區變化。

不依賴

雲資料庫Tair(Redis開源版)

支援加減分區的無感擴縮容。調整執行個體規格後會導致短暫閃斷,嘗試重連多次失敗後會導致Failover。

  • 叢集模式:叢集支援加減分區的無感擴縮容。

  • 主從模式:執行變更配置操作(如調整執行個體規格)可能導致短暫閃斷,Flink 會嘗試重連;若多次重連失敗,則觸發 Failover。為避免 Failover並實現快速適配,建議在變更配置完成後手動重啟作業。

不依賴

雲資料庫Tair(Tair企業版)

不依賴

ClickHouse

如果shardWrite設定為false,不需要重啟作業。

如果設定為true,則根據inferLocalTable參數值來修改。

inferLocalTable參數值:

  • false(預設值):重新修改url參數,添加新節點後重啟作業。

  • true:重新手動啟動作業,將自動推測本地表的節點。

不依賴

雲訊息佇列 RocketMQ 版

  • RocketMQ 4.x:

    作業會通過 Failover 適配分區變化。

  • RocketMQ 5.x:

    • VVR 8.0.6及以下:需要手動重啟作業以適配分區變化。

    • VVR 8.0.7及以上:支援自動適配分區變化。

自動適配可能導致資料重複消費,建議在分區變更前停止作業,並在變更後從Checkpoint啟動以避免問題。

依賴

Table StoreTablestore(OTS)

一段時間內連接器沒有資料,且buffer中也無資料發送,則需要依賴Checkpoint寫入

/

依賴

SelectDB

擴縮容不影響寫入。

/

不依賴

MongoDB

作業讀取階段,如果拓撲改變會造成134 - ReadConcernMajorityNotAvailableYet 錯誤,屬於不可重試錯誤。

如果需要升降配,主節點切換或分區叢集中分區的增減等拓撲變化,請停止作業,等待叢集穩定後重啟作業。

依賴

Object Storage Service

通過維護獨立的中繼資料層來描述資料的結構和狀態,不涉及增減分區和節點擴縮容的操作。

/

依賴

Iceberg

/

依賴

流式資料湖倉Paimon

/

依賴

Hudi(退役中)

/

依賴

Print

測試使用。

/

/

Blackhole

/

/

Datagen

/

/

類比資料產生Faker

/

/