Package io.debezium.pipeline
Class ChangeEventSourceCoordinator
- java.lang.Object
-
- io.debezium.pipeline.ChangeEventSourceCoordinator
-
@ThreadSafe public class ChangeEventSourceCoordinator extends Object
Coordinates one or moreChangeEventSources and executes them in order.- Author:
- Gunnar Morling
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classChangeEventSourceCoordinator.CatchUpStreamingResultprivate classChangeEventSourceCoordinator.ChangeEventSourceContextImpl
-
Field Summary
Fields Modifier and Type Field Description private ChangeEventSourceFactorychangeEventSourceFactoryprivate ChangeEventSourceMetricsFactorychangeEventSourceMetricsFactoryprivate ReentrantLockcommitOffsetLockprivate ErrorHandlererrorHandlerprivate EventDispatcher<?>eventDispatcherprivate ExecutorServiceexecutorprivate static org.slf4j.LoggerLOGGERprivate OffsetContextpreviousOffsetprivate booleanrunningprivate DatabaseSchema<?>schemastatic DurationSHUTDOWN_WAIT_TIMEOUTWaiting period for the polling loop to finish.private SnapshotChangeEventSourceMetricssnapshotMetricsprivate StreamingChangeEventSourceMetricsstreamingMetricsprivate StreamingChangeEventSourcestreamingSource
-
Constructor Summary
Constructors Constructor Description ChangeEventSourceCoordinator(OffsetContext previousOffset, ErrorHandler errorHandler, Class<? extends org.apache.kafka.connect.source.SourceConnector> connectorType, CommonConnectorConfig connectorConfig, ChangeEventSourceFactory changeEventSourceFactory, ChangeEventSourceMetricsFactory changeEventSourceMetricsFactory, EventDispatcher<?> eventDispatcher, DatabaseSchema<?> schema)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcommitOffset(Map<String,?> offset)protected ChangeEventSourceCoordinator.CatchUpStreamingResultexecuteCatchUpStreaming(OffsetContext previousOffset, ChangeEventSource.ChangeEventSourceContext context, SnapshotChangeEventSource snapshotSource)<T extends CdcSourceTaskContext>
voidstart(T taskContext, ChangeEventQueueMetrics changeEventQueueMetrics, EventMetadataProvider metadataProvider)voidstop()Stops this coordinator.protected voidstreamEvents(OffsetContext offsetContext, ChangeEventSource.ChangeEventSourceContext context)private voidstreamingConnected(boolean status)
-
-
-
Field Detail
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
SHUTDOWN_WAIT_TIMEOUT
public static final Duration SHUTDOWN_WAIT_TIMEOUT
Waiting period for the polling loop to finish. Will be applied twice, once gracefully, once forcefully.
-
previousOffset
private final OffsetContext previousOffset
-
errorHandler
private final ErrorHandler errorHandler
-
changeEventSourceFactory
private final ChangeEventSourceFactory changeEventSourceFactory
-
changeEventSourceMetricsFactory
private final ChangeEventSourceMetricsFactory changeEventSourceMetricsFactory
-
executor
private final ExecutorService executor
-
eventDispatcher
private final EventDispatcher<?> eventDispatcher
-
schema
private final DatabaseSchema<?> schema
-
running
private volatile boolean running
-
streamingSource
private volatile StreamingChangeEventSource streamingSource
-
commitOffsetLock
private final ReentrantLock commitOffsetLock
-
snapshotMetrics
private SnapshotChangeEventSourceMetrics snapshotMetrics
-
streamingMetrics
private StreamingChangeEventSourceMetrics streamingMetrics
-
-
Constructor Detail
-
ChangeEventSourceCoordinator
public ChangeEventSourceCoordinator(OffsetContext previousOffset, ErrorHandler errorHandler, Class<? extends org.apache.kafka.connect.source.SourceConnector> connectorType, CommonConnectorConfig connectorConfig, ChangeEventSourceFactory changeEventSourceFactory, ChangeEventSourceMetricsFactory changeEventSourceMetricsFactory, EventDispatcher<?> eventDispatcher, DatabaseSchema<?> schema)
-
-
Method Detail
-
start
public <T extends CdcSourceTaskContext> void start(T taskContext, ChangeEventQueueMetrics changeEventQueueMetrics, EventMetadataProvider metadataProvider)
-
executeCatchUpStreaming
protected ChangeEventSourceCoordinator.CatchUpStreamingResult executeCatchUpStreaming(OffsetContext previousOffset, ChangeEventSource.ChangeEventSourceContext context, SnapshotChangeEventSource snapshotSource) throws InterruptedException
- Throws:
InterruptedException
-
streamEvents
protected void streamEvents(OffsetContext offsetContext, ChangeEventSource.ChangeEventSourceContext context) throws InterruptedException
- Throws:
InterruptedException
-
stop
public void stop() throws InterruptedExceptionStops this coordinator.- Throws:
InterruptedException
-
streamingConnected
private void streamingConnected(boolean status)
-
-