Package io.debezium.pipeline
Class ChangeEventSourceCoordinator<O extends OffsetContext>
- java.lang.Object
-
- io.debezium.pipeline.ChangeEventSourceCoordinator<O>
-
@ThreadSafe public class ChangeEventSourceCoordinator<O extends OffsetContext> extends Object
Coordinates one or moreChangeEventSource
s and executes them in order.- Author:
- Gunnar Morling
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
ChangeEventSourceCoordinator.CatchUpStreamingResult
private class
ChangeEventSourceCoordinator.ChangeEventSourceContextImpl
-
Field Summary
Fields Modifier and Type Field Description private ChangeEventSourceFactory<O>
changeEventSourceFactory
private ChangeEventSourceMetricsFactory
changeEventSourceMetricsFactory
private ReentrantLock
commitOffsetLock
private ErrorHandler
errorHandler
private EventDispatcher<?>
eventDispatcher
private ExecutorService
executor
private static org.slf4j.Logger
LOGGER
private O
previousOffset
private boolean
running
private DatabaseSchema<?>
schema
static Duration
SHUTDOWN_WAIT_TIMEOUT
Waiting period for the polling loop to finish.private SnapshotChangeEventSourceMetrics
snapshotMetrics
private StreamingChangeEventSourceMetrics
streamingMetrics
private StreamingChangeEventSource<O>
streamingSource
-
Constructor Summary
Constructors Constructor Description ChangeEventSourceCoordinator(O previousOffset, ErrorHandler errorHandler, Class<? extends org.apache.kafka.connect.source.SourceConnector> connectorType, CommonConnectorConfig connectorConfig, ChangeEventSourceFactory<O> changeEventSourceFactory, ChangeEventSourceMetricsFactory changeEventSourceMetricsFactory, EventDispatcher<?> eventDispatcher, DatabaseSchema<?> schema)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
commitOffset(Map<String,?> offset)
protected ChangeEventSourceCoordinator.CatchUpStreamingResult
executeCatchUpStreaming(O previousOffset, ChangeEventSource.ChangeEventSourceContext context, SnapshotChangeEventSource<O> snapshotSource)
void
start(CdcSourceTaskContext taskContext, ChangeEventQueueMetrics changeEventQueueMetrics, EventMetadataProvider metadataProvider)
void
stop()
Stops this coordinator.protected void
streamEvents(O offsetContext, ChangeEventSource.ChangeEventSourceContext context)
private void
streamingConnected(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 O extends OffsetContext previousOffset
-
errorHandler
private final ErrorHandler errorHandler
-
changeEventSourceFactory
private final ChangeEventSourceFactory<O extends OffsetContext> 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<O extends OffsetContext> streamingSource
-
commitOffsetLock
private final ReentrantLock commitOffsetLock
-
snapshotMetrics
private SnapshotChangeEventSourceMetrics snapshotMetrics
-
streamingMetrics
private StreamingChangeEventSourceMetrics streamingMetrics
-
-
Constructor Detail
-
ChangeEventSourceCoordinator
public ChangeEventSourceCoordinator(O previousOffset, ErrorHandler errorHandler, Class<? extends org.apache.kafka.connect.source.SourceConnector> connectorType, CommonConnectorConfig connectorConfig, ChangeEventSourceFactory<O> changeEventSourceFactory, ChangeEventSourceMetricsFactory changeEventSourceMetricsFactory, EventDispatcher<?> eventDispatcher, DatabaseSchema<?> schema)
-
-
Method Detail
-
start
public void start(CdcSourceTaskContext taskContext, ChangeEventQueueMetrics changeEventQueueMetrics, EventMetadataProvider metadataProvider)
-
executeCatchUpStreaming
protected ChangeEventSourceCoordinator.CatchUpStreamingResult executeCatchUpStreaming(O previousOffset, ChangeEventSource.ChangeEventSourceContext context, SnapshotChangeEventSource<O> snapshotSource) throws InterruptedException
- Throws:
InterruptedException
-
streamEvents
protected void streamEvents(O offsetContext, ChangeEventSource.ChangeEventSourceContext context) throws InterruptedException
- Throws:
InterruptedException
-
stop
public void stop() throws InterruptedException
Stops this coordinator.- Throws:
InterruptedException
-
streamingConnected
private void streamingConnected(boolean status)
-
-