Package io.debezium.connector.mongodb
Class MongoDbStreamingChangeEventSource
java.lang.Object
io.debezium.connector.mongodb.MongoDbStreamingChangeEventSource
- All Implemented Interfaces:
ChangeEventSource,StreamingChangeEventSource<MongoDbPartition,MongoDbOffsetContext>
public class MongoDbStreamingChangeEventSource
extends Object
implements StreamingChangeEventSource<MongoDbPartition,MongoDbOffsetContext>
- Author:
- Chris Cranford
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static enumIndicates the status of event processingNested classes/interfaces inherited from interface io.debezium.pipeline.source.spi.ChangeEventSource
ChangeEventSource.ChangeEventSourceContext -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Clockprivate final MongoDbConnectorConfigprivate final EventDispatcher<MongoDbPartition,CollectionId> private MongoDbOffsetContextprivate final ErrorHandlerprivate static final org.slf4j.Loggerprivate final SnapshotterServiceprivate final MongoDbStreamingChangeEventSourceMetricsprivate final MongoDbTaskContext -
Constructor Summary
ConstructorsConstructorDescriptionMongoDbStreamingChangeEventSource(MongoDbConnectorConfig connectorConfig, MongoDbTaskContext taskContext, EventDispatcher<MongoDbPartition, CollectionId> dispatcher, ErrorHandler errorHandler, Clock clock, MongoDbStreamingChangeEventSourceMetrics streamingMetrics, SnapshotterService snapshotterService) -
Method Summary
Modifier and TypeMethodDescriptionprivate voiddispatchChangeEvent(com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.BsonDocument> event, MongoDbPartition partition, MongoDbOffsetContext offsetContext) private voiddispatchHeartbeatEvent(BufferingChangeStreamCursor.ResumableChangeStreamEvent<org.bson.BsonDocument> event, MongoDbPartition partition, MongoDbOffsetContext offsetContext) protected MongoDbOffsetContextemptyOffsets(MongoDbConnectorConfig connectorConfig) errorHandled(BlockingRunnable action) voidexecute(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, MongoDbOffsetContext offsetContext) voidinit(MongoDbOffsetContext offsetContext) protected com.mongodb.client.ChangeStreamIterable<org.bson.BsonDocument>initChangeStream(com.mongodb.client.MongoClient client, MongoDbOffsetContext offsetContext) processChangeStreamDocument(com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.BsonDocument> document, SplitEventHandler<org.bson.BsonDocument> splitHandler, MongoDbPartition partition, MongoDbOffsetContext offsetContext) private voidreadChangeStream(com.mongodb.client.MongoClient client, ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition) private voidMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.debezium.pipeline.source.spi.StreamingChangeEventSource
commitOffset, executeIteration
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
connectorConfig
-
dispatcher
-
errorHandler
-
clock
-
taskContext
-
streamingMetrics
-
snapshotterService
-
effectiveOffset
-
-
Constructor Details
-
MongoDbStreamingChangeEventSource
public MongoDbStreamingChangeEventSource(MongoDbConnectorConfig connectorConfig, MongoDbTaskContext taskContext, EventDispatcher<MongoDbPartition, CollectionId> dispatcher, ErrorHandler errorHandler, Clock clock, MongoDbStreamingChangeEventSourceMetrics streamingMetrics, SnapshotterService snapshotterService)
-
-
Method Details
-
init
- Specified by:
initin interfaceStreamingChangeEventSource<MongoDbPartition,MongoDbOffsetContext>
-
execute
public void execute(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, MongoDbOffsetContext offsetContext) - Specified by:
executein interfaceStreamingChangeEventSource<MongoDbPartition,MongoDbOffsetContext> - Parameters:
context- contextual information for this source's executionpartition- the source partition from which the changes should be streamedoffsetContext- unused as effective offset is build byinit(MongoDbOffsetContext)
-
getOffsetContext
- Specified by:
getOffsetContextin interfaceStreamingChangeEventSource<MongoDbPartition,MongoDbOffsetContext>
-
readChangeStream
private void readChangeStream(com.mongodb.client.MongoClient client, ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition) -
waitWhenStreamingPaused
-
processChangeStreamDocument
private MongoDbStreamingChangeEventSource.StreamStatus processChangeStreamDocument(com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.BsonDocument> document, SplitEventHandler<org.bson.BsonDocument> splitHandler, MongoDbPartition partition, MongoDbOffsetContext offsetContext) -
dispatchChangeEvent
private void dispatchChangeEvent(com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.BsonDocument> event, MongoDbPartition partition, MongoDbOffsetContext offsetContext) throws InterruptedException - Throws:
InterruptedException
-
dispatchHeartbeatEvent
private void dispatchHeartbeatEvent(BufferingChangeStreamCursor.ResumableChangeStreamEvent<org.bson.BsonDocument> event, MongoDbPartition partition, MongoDbOffsetContext offsetContext) throws InterruptedException - Throws:
InterruptedException
-
errorHandled
-
initChangeStream
protected com.mongodb.client.ChangeStreamIterable<org.bson.BsonDocument> initChangeStream(com.mongodb.client.MongoClient client, MongoDbOffsetContext offsetContext) -
emptyOffsets
-