Class FlussSourceReader<T>
- java.lang.Object
-
- org.apache.flink.connector.base.source.reader.SourceReaderBase<E,T,SplitT,SplitStateT>
-
- org.apache.flink.connector.base.source.reader.SingleThreadMultiplexSourceReaderBase<E,T,SplitT,SplitStateT>
-
- org.apache.flink.cdc.source.SingleThreadMultiplexSourceReaderBaseAdapter<FlussSourceRecord,T,FlussSplitBase,FlussSplitState>
-
- org.apache.flink.cdc.connectors.fluss.source.reader.FlussSourceReader<T>
-
- Type Parameters:
T- The type of output records produced by this reader.
- All Implemented Interfaces:
AutoCloseable,org.apache.flink.api.common.state.CheckpointListener,org.apache.flink.api.connector.source.SourceReader<T,FlussSplitBase>
public class FlussSourceReader<T> extends org.apache.flink.cdc.source.SingleThreadMultiplexSourceReaderBaseAdapter<FlussSourceRecord,T,FlussSplitBase,FlussSplitState>
A genericSourceReaderfor Fluss, built on top of Flink'sSingleThreadMultiplexSourceReaderBase. This delegates the low-level split management, fetcher lifecycle, and availability tracking to the base class, and only provides Fluss-specific initialization logic.The output type
Tis determined by the providedFlussDeserializer, making this reader reusable for different output types.
-
-
Constructor Summary
Constructors Constructor Description FlussSourceReader(org.apache.flink.connector.base.source.reader.synchronization.FutureCompletingBlockingQueue<org.apache.flink.connector.base.source.reader.RecordsWithSplitIds<FlussSourceRecord>> elementsQueue, org.apache.flink.api.connector.source.SourceReaderContext readerContext, org.apache.fluss.config.Configuration flussConfig, WrapperFlussMetricRegistry metricRegistry, FlussSourceReaderMetrics sourceReaderMetrics, FlussRecordEmitter<T> recordEmitter)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddSplits(List<FlussSplitBase> splits)voidclose()voidhandleSourceEvents(org.apache.flink.api.connector.source.SourceEvent sourceEvent)protected FlussSplitStateinitializedState(FlussSplitBase split)protected voidonSplitFinished(Map<String,FlussSplitState> finishedSplitIds)List<FlussSplitBase>snapshotState(long checkpointId)protected FlussSplitBasetoSplitType(String splitId, FlussSplitState splitState)-
Methods inherited from class org.apache.flink.connector.base.source.reader.SourceReaderBase
getNumberOfCurrentlyAssignedSplits, isAvailable, notifyNoMoreSplits, pauseOrResumeSplits, pollNext, start
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
-
-
Constructor Detail
-
FlussSourceReader
public FlussSourceReader(org.apache.flink.connector.base.source.reader.synchronization.FutureCompletingBlockingQueue<org.apache.flink.connector.base.source.reader.RecordsWithSplitIds<FlussSourceRecord>> elementsQueue, org.apache.flink.api.connector.source.SourceReaderContext readerContext, org.apache.fluss.config.Configuration flussConfig, WrapperFlussMetricRegistry metricRegistry, FlussSourceReaderMetrics sourceReaderMetrics, FlussRecordEmitter<T> recordEmitter)
-
-
Method Detail
-
close
public void close() throws Exception- Specified by:
closein interfaceAutoCloseable- Overrides:
closein classorg.apache.flink.connector.base.source.reader.SourceReaderBase<FlussSourceRecord,T,FlussSplitBase,FlussSplitState>- Throws:
Exception
-
initializedState
protected FlussSplitState initializedState(FlussSplitBase split)
- Specified by:
initializedStatein classorg.apache.flink.connector.base.source.reader.SourceReaderBase<FlussSourceRecord,T,FlussSplitBase,FlussSplitState>
-
toSplitType
protected FlussSplitBase toSplitType(String splitId, FlussSplitState splitState)
- Specified by:
toSplitTypein classorg.apache.flink.connector.base.source.reader.SourceReaderBase<FlussSourceRecord,T,FlussSplitBase,FlussSplitState>
-
snapshotState
public List<FlussSplitBase> snapshotState(long checkpointId)
- Specified by:
snapshotStatein interfaceorg.apache.flink.api.connector.source.SourceReader<T,FlussSplitBase>- Overrides:
snapshotStatein classorg.apache.flink.connector.base.source.reader.SourceReaderBase<FlussSourceRecord,T,FlussSplitBase,FlussSplitState>
-
addSplits
public void addSplits(List<FlussSplitBase> splits)
- Specified by:
addSplitsin interfaceorg.apache.flink.api.connector.source.SourceReader<T,FlussSplitBase>- Overrides:
addSplitsin classorg.apache.flink.connector.base.source.reader.SourceReaderBase<FlussSourceRecord,T,FlussSplitBase,FlussSplitState>
-
handleSourceEvents
public void handleSourceEvents(org.apache.flink.api.connector.source.SourceEvent sourceEvent)
- Specified by:
handleSourceEventsin interfaceorg.apache.flink.api.connector.source.SourceReader<T,FlussSplitBase>- Overrides:
handleSourceEventsin classorg.apache.flink.connector.base.source.reader.SourceReaderBase<FlussSourceRecord,T,FlussSplitBase,FlussSplitState>
-
onSplitFinished
protected void onSplitFinished(Map<String,FlussSplitState> finishedSplitIds)
- Specified by:
onSplitFinishedin classorg.apache.flink.connector.base.source.reader.SourceReaderBase<FlussSourceRecord,T,FlussSplitBase,FlussSplitState>
-
-