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 Classes Modifier and Type Class Description private classMongoDbStreamingChangeEventSource.ReplicaSetOplogContextA 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
Fields Modifier and Type Field Description private static StringAUTHORIZATION_FAILURE_MESSAGEprivate Clockclockprivate ConnectionContextconnectionContextprivate MongoDbConnectorConfigconnectorConfigprivate EventDispatcher<CollectionId>dispatcherprivate ErrorHandlererrorHandlerprivate static org.slf4j.LoggerLOGGERprivate static StringOBJECT_FIELDprivate static StringOPERATION_CONTROLprivate static StringOPERATION_FIELDprivate ReplicaSetsreplicaSetsprivate MongoDbTaskContexttaskContextprivate static StringTX_OPS
-
Constructor Summary
Constructors Constructor Description MongoDbStreamingChangeEventSource(MongoDbConnectorConfig connectorConfig, MongoDbTaskContext taskContext, ReplicaSets replicaSets, EventDispatcher<CollectionId> dispatcher, ErrorHandler errorHandler, Clock clock)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private ConnectionContext.MongoPrimaryestablishConnectionToPrimary(ReplicaSet replicaSet)voidexecute(ChangeEventSource.ChangeEventSourceContext context, MongoDbPartition partition, MongoDbOffsetContext offsetContext)private org.bson.conversions.BsongetSkippedOperationsFilter()private 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, ChangeEventSource.ChangeEventSourceContext context)protected MongoDbOffsetContextinitializeOffsets(MongoDbConnectorConfig connectorConfig, ReplicaSets replicaSets)private booleanisStartPositionInOplog(org.bson.BsonTimestamp startTime, com.mongodb.client.MongoCollection<org.bson.Document> oplog)private voidreadOplog(com.mongodb.client.MongoClient primary, ConnectionContext.MongoPrimary primaryClient, ReplicaSet replicaSet, ChangeEventSource.ChangeEventSourceContext context, MongoDbOffsetContext offsetContext)private voidstreamChangesForReplicaSet(ChangeEventSource.ChangeEventSourceContext context, ReplicaSet replicaSet, MongoDbOffsetContext offsetContext)private voidstreamChangesForReplicaSets(ChangeEventSource.ChangeEventSourceContext context, 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, wait
-
Methods inherited from interface io.debezium.pipeline.source.spi.StreamingChangeEventSource
commitOffset, init
-
-
-
-
Field Detail
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
AUTHORIZATION_FAILURE_MESSAGE
private static final String AUTHORIZATION_FAILURE_MESSAGE
- See Also:
- Constant Field Values
-
OPERATION_FIELD
private static final String OPERATION_FIELD
- See Also:
- Constant Field Values
-
OBJECT_FIELD
private static final String OBJECT_FIELD
- See Also:
- Constant Field Values
-
OPERATION_CONTROL
private static final String OPERATION_CONTROL
- See Also:
- Constant Field Values
-
TX_OPS
private static final String TX_OPS
- See Also:
- Constant Field Values
-
connectorConfig
private final MongoDbConnectorConfig connectorConfig
-
dispatcher
private final EventDispatcher<CollectionId> dispatcher
-
errorHandler
private final ErrorHandler errorHandler
-
clock
private final Clock clock
-
connectionContext
private final ConnectionContext connectionContext
-
replicaSets
private final ReplicaSets replicaSets
-
taskContext
private final MongoDbTaskContext taskContext
-
-
Constructor Detail
-
MongoDbStreamingChangeEventSource
public MongoDbStreamingChangeEventSource(MongoDbConnectorConfig connectorConfig, MongoDbTaskContext taskContext, ReplicaSets replicaSets, EventDispatcher<CollectionId> dispatcher, ErrorHandler errorHandler, Clock clock)
-
-
Method Detail
-
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, ReplicaSet replicaSet, MongoDbOffsetContext offsetContext)
-
streamChangesForReplicaSets
private void streamChangesForReplicaSets(ChangeEventSource.ChangeEventSourceContext context, List<ReplicaSet> replicaSets, MongoDbOffsetContext offsetContext)
-
establishConnectionToPrimary
private ConnectionContext.MongoPrimary establishConnectionToPrimary(ReplicaSet replicaSet)
-
readOplog
private void readOplog(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)
-
getSkippedOperationsFilter
private org.bson.conversions.Bson getSkippedOperationsFilter()
-
handleOplogEvent
private boolean handleOplogEvent(com.mongodb.ServerAddress primaryAddress, org.bson.Document event, org.bson.Document masterEvent, long txOrder, MongoDbStreamingChangeEventSource.ReplicaSetOplogContext oplogContext, ChangeEventSource.ChangeEventSourceContext context)
-
transactionChanges
private List<org.bson.Document> transactionChanges(org.bson.Document event)
-
initializeOffsets
protected MongoDbOffsetContext initializeOffsets(MongoDbConnectorConfig connectorConfig, ReplicaSets replicaSets)
-
getTransactionId
private static String getTransactionId(org.bson.Document event)
-
-