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 TypeClassDescriptionprivate classA context associated with a given replica set oplog read operation.Nested classes/interfaces inherited from interface io.debezium.pipeline.source.spi.ChangeEventSource
ChangeEventSource.ChangeEventSourceContext -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Stringprivate final Clockprivate final ConnectionContextprivate final MongoDbConnectorConfigprivate final EventDispatcher<MongoDbPartition,CollectionId> private final ErrorHandlerprivate static final org.slf4j.Loggerprivate static final Stringprivate static final Stringprivate static final Stringprivate final ReplicaSetsprivate final MongoDbTaskContextprivate static final String -
Constructor Summary
ConstructorsConstructorDescriptionMongoDbStreamingChangeEventSource(MongoDbConnectorConfig connectorConfig, MongoDbTaskContext taskContext, ReplicaSets replicaSets, EventDispatcher<MongoDbPartition, CollectionId> dispatcher, ErrorHandler errorHandler, Clock clock) -
Method Summary
Modifier and TypeMethodDescriptionprivate ConnectionContext.MongoPrimaryestablishConnectionToPrimary(MongoDbPartition partition, ReplicaSet replicaSet) voidexecute(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, MongoDbOffsetContext offsetContext) private org.bson.conversions.Bsonprivate static StringgetTransactionId(org.bson.Document event) private booleanhandleOplogEvent(com.mongodb.ServerAddress primaryAddress, org.bson.Document event, org.bson.Document masterEvent, long txOrder, MongoDbStreamingChangeEventSource.ReplicaSetOplogContext oplogContext) protected MongoDbOffsetContextinitializeOffsets(MongoDbConnectorConfig connectorConfig, MongoDbPartition partition, ReplicaSets replicaSets) private booleanisStartPositionInOplog(org.bson.BsonTimestamp startTime, com.mongodb.client.MongoCollection<org.bson.Document> oplog) private voidreadChangeStream(com.mongodb.client.MongoClient primary, ConnectionContext.MongoPrimary primaryClient, ReplicaSet replicaSet, ChangeEventSource.ChangeEventSourceContext context, MongoDbOffsetContext offsetContext) private voidreadOplog(com.mongodb.client.MongoClient primary, ConnectionContext.MongoPrimary primaryClient, ReplicaSet replicaSet, ChangeEventSource.ChangeEventSourceContext context, MongoDbOffsetContext offsetContext) private voidstreamChangesForReplicaSet(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, ReplicaSet replicaSet, MongoDbOffsetContext offsetContext) private voidstreamChangesForReplicaSets(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, List<ReplicaSet> replicaSets, MongoDbOffsetContext offsetContext) private List<org.bson.Document>transactionChanges(org.bson.Document event) Methods 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, init
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
AUTHORIZATION_FAILURE_MESSAGE
- See Also:
-
OPERATION_FIELD
- See Also:
-
OBJECT_FIELD
- See Also:
-
OPERATION_CONTROL
- See Also:
-
TX_OPS
- See Also:
-
connectorConfig
-
dispatcher
-
errorHandler
-
clock
-
connectionContext
-
replicaSets
-
taskContext
-
-
Constructor Details
-
MongoDbStreamingChangeEventSource
public MongoDbStreamingChangeEventSource(MongoDbConnectorConfig connectorConfig, MongoDbTaskContext taskContext, ReplicaSets replicaSets, EventDispatcher<MongoDbPartition, CollectionId> dispatcher, ErrorHandler errorHandler, Clock clock)
-
-
Method Details
-
execute
public void execute(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, MongoDbOffsetContext offsetContext) throws InterruptedException - Specified by:
executein interfaceStreamingChangeEventSource<MongoDbPartition,MongoDbOffsetContext> - Throws:
InterruptedException
-
streamChangesForReplicaSet
private void streamChangesForReplicaSet(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, ReplicaSet replicaSet, MongoDbOffsetContext offsetContext) -
streamChangesForReplicaSets
private void streamChangesForReplicaSets(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, List<ReplicaSet> replicaSets, MongoDbOffsetContext offsetContext) -
establishConnectionToPrimary
private ConnectionContext.MongoPrimary establishConnectionToPrimary(MongoDbPartition partition, ReplicaSet replicaSet) -
readOplog
private void readOplog(com.mongodb.client.MongoClient primary, ConnectionContext.MongoPrimary primaryClient, ReplicaSet replicaSet, ChangeEventSource.ChangeEventSourceContext context, MongoDbOffsetContext offsetContext) -
getChangeStreamSkippedOperationsFilter
-
readChangeStream
private void readChangeStream(com.mongodb.client.MongoClient primary, ConnectionContext.MongoPrimary primaryClient, ReplicaSet replicaSet, ChangeEventSource.ChangeEventSourceContext context, MongoDbOffsetContext offsetContext) -
isStartPositionInOplog
private boolean isStartPositionInOplog(org.bson.BsonTimestamp startTime, com.mongodb.client.MongoCollection<org.bson.Document> oplog) -
getOplogSkippedOperationsFilter
private org.bson.conversions.Bson getOplogSkippedOperationsFilter() -
handleOplogEvent
private boolean handleOplogEvent(com.mongodb.ServerAddress primaryAddress, org.bson.Document event, org.bson.Document masterEvent, long txOrder, MongoDbStreamingChangeEventSource.ReplicaSetOplogContext oplogContext) -
transactionChanges
-
initializeOffsets
protected MongoDbOffsetContext initializeOffsets(MongoDbConnectorConfig connectorConfig, MongoDbPartition partition, ReplicaSets replicaSets) -
getTransactionId
-