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 ConnectionContextprivate final MongoDbConnection.ChangeEventSourceConnectionFactoryprivate final MongoDbConnectorConfigprivate final EventDispatcher<MongoDbPartition,CollectionId> private MongoDbOffsetContextprivate final ErrorHandlerprivate static final org.slf4j.Loggerprivate final ReplicaSetsprivate final MongoDbStreamingChangeEventSourceMetricsprivate final MongoDbTaskContext -
Constructor Summary
ConstructorsConstructorDescriptionMongoDbStreamingChangeEventSource(MongoDbConnectorConfig connectorConfig, MongoDbTaskContext taskContext, MongoDbConnection.ChangeEventSourceConnectionFactory connections, ReplicaSets replicaSets, EventDispatcher<MongoDbPartition, CollectionId> dispatcher, ErrorHandler errorHandler, Clock clock, MongoDbStreamingChangeEventSourceMetrics streamingMetrics) -
Method Summary
Modifier and TypeMethodDescriptionprivate voiddispatchChangeEvent(com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.BsonDocument> event, ReplicaSet replicaSet, ReplicaSetPartition rsPartition, ReplicaSetOffsetContext rsOffsetContext) private voiddispatchHeartbeatEvent(BufferingChangeStreamCursor.ResumableChangeStreamEvent<org.bson.BsonDocument> event, ReplicaSetPartition rsPartition, ReplicaSetOffsetContext rsOffsetContext) 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, ReplicaSetOffsetContext offsetContext) processChangeStreamDocument(com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.BsonDocument> document, SplitEventHandler<org.bson.BsonDocument> splitHandler, ReplicaSet replicaSet, ReplicaSetPartition rsPartition, ReplicaSetOffsetContext rsOffsetContext) private voidreadChangeStream(com.mongodb.client.MongoClient client, ReplicaSet replicaSet, ChangeEventSource.ChangeEventSourceContext context) private voidstreamChangesForReplicaSet(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, ReplicaSet replicaSet) private voidstreamChangesForReplicaSets(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, List<ReplicaSet> replicaSets) 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
-
connectionContext
-
replicaSets
-
taskContext
-
connections
-
streamingMetrics
-
effectiveOffset
-
-
Constructor Details
-
MongoDbStreamingChangeEventSource
public MongoDbStreamingChangeEventSource(MongoDbConnectorConfig connectorConfig, MongoDbTaskContext taskContext, MongoDbConnection.ChangeEventSourceConnectionFactory connections, ReplicaSets replicaSets, EventDispatcher<MongoDbPartition, CollectionId> dispatcher, ErrorHandler errorHandler, Clock clock, MongoDbStreamingChangeEventSourceMetrics streamingMetrics)
-
-
Method Details
-
init
- Specified by:
initin interfaceStreamingChangeEventSource<MongoDbPartition,MongoDbOffsetContext>
-
execute
public void execute(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, MongoDbOffsetContext offsetContext) throws InterruptedException - 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)- Throws:
InterruptedException
-
getOffsetContext
- Specified by:
getOffsetContextin interfaceStreamingChangeEventSource<MongoDbPartition,MongoDbOffsetContext>
-
streamChangesForReplicaSet
private void streamChangesForReplicaSet(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, ReplicaSet replicaSet) -
streamChangesForReplicaSets
private void streamChangesForReplicaSets(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, List<ReplicaSet> replicaSets) -
readChangeStream
private void readChangeStream(com.mongodb.client.MongoClient client, ReplicaSet replicaSet, ChangeEventSource.ChangeEventSourceContext context) -
waitWhenStreamingPaused
-
processChangeStreamDocument
private MongoDbStreamingChangeEventSource.StreamStatus processChangeStreamDocument(com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.BsonDocument> document, SplitEventHandler<org.bson.BsonDocument> splitHandler, ReplicaSet replicaSet, ReplicaSetPartition rsPartition, ReplicaSetOffsetContext rsOffsetContext) -
dispatchChangeEvent
private void dispatchChangeEvent(com.mongodb.client.model.changestream.ChangeStreamDocument<org.bson.BsonDocument> event, ReplicaSet replicaSet, ReplicaSetPartition rsPartition, ReplicaSetOffsetContext rsOffsetContext) throws InterruptedException - Throws:
InterruptedException
-
dispatchHeartbeatEvent
private void dispatchHeartbeatEvent(BufferingChangeStreamCursor.ResumableChangeStreamEvent<org.bson.BsonDocument> event, ReplicaSetPartition rsPartition, ReplicaSetOffsetContext rsOffsetContext) throws InterruptedException - Throws:
InterruptedException
-
errorHandled
-
initChangeStream
protected com.mongodb.client.ChangeStreamIterable<org.bson.BsonDocument> initChangeStream(com.mongodb.client.MongoClient client, ReplicaSetOffsetContext offsetContext) -
emptyOffsets
-