Package io.debezium.heartbeat
Class HeartbeatImpl
java.lang.Object
io.debezium.heartbeat.HeartbeatImpl
- All Implemented Interfaces:
Heartbeat,AutoCloseable
- Direct Known Subclasses:
DatabaseHeartbeatImpl
Default implementation of Heartbeat
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.debezium.heartbeat.Heartbeat
Heartbeat.OffsetProducer -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final intDefault length of interval in which connector generates periodically heartbeat messages.(package private) static final StringDefault prefix for names of heartbeat topicsprivate final Durationprivate Threads.Timerprivate final Stringprivate final org.apache.kafka.connect.data.Schemaprivate static final org.slf4j.Loggerprivate static final Stringprivate final Stringprivate final org.apache.kafka.connect.data.SchemaFields inherited from interface io.debezium.heartbeat.Heartbeat
DEFAULT_NOOP_HEARTBEAT, HEARTBEAT_INTERVAL, HEARTBEAT_INTERVAL_PROPERTY_NAME, HEARTBEAT_TOPICS_PREFIX -
Constructor Summary
ConstructorsConstructorDescriptionHeartbeatImpl(Duration heartbeatInterval, String topicName, String key, SchemaNameAdjuster schemaNameAdjuster) -
Method Summary
Modifier and TypeMethodDescriptionvoidforcedBeat(Map<String, ?> partition, Map<String, ?> offset, BlockingConsumer<org.apache.kafka.connect.source.SourceRecord> consumer) Generates a heartbeat record unconditionalyvoidheartbeat(Map<String, ?> partition, Heartbeat.OffsetProducer offsetProducer, BlockingConsumer<org.apache.kafka.connect.source.SourceRecord> consumer) Generates a heartbeat record if defined time has elapsedvoidheartbeat(Map<String, ?> partition, Map<String, ?> offset, BlockingConsumer<org.apache.kafka.connect.source.SourceRecord> consumer) Generates a heartbeat record if defined time has elapsedprivate org.apache.kafka.connect.source.SourceRecordheartbeatRecord(Map<String, ?> sourcePartition, Map<String, ?> sourceOffset) Produce an empty record to the heartbeat topic.booleanWhether heartbeats are enabled or not.private org.apache.kafka.connect.data.StructProduce a value struct containing the timestampprivate Threads.Timerprivate org.apache.kafka.connect.data.StructserverNameKey(String serverName) Produce a key struct based on the server name and KEY_SCHEMA
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
DEFAULT_HEARTBEAT_INTERVAL
static final int DEFAULT_HEARTBEAT_INTERVALDefault length of interval in which connector generates periodically heartbeat messages. A size of 0 disables heartbeat.- See Also:
-
DEFAULT_HEARTBEAT_TOPICS_PREFIX
Default prefix for names of heartbeat topics- See Also:
-
SERVER_NAME_KEY
- See Also:
-
topicName
-
heartbeatInterval
-
key
-
keySchema
private final org.apache.kafka.connect.data.Schema keySchema -
valueSchema
private final org.apache.kafka.connect.data.Schema valueSchema -
heartbeatTimeout
-
-
Constructor Details
-
HeartbeatImpl
HeartbeatImpl(Duration heartbeatInterval, String topicName, String key, SchemaNameAdjuster schemaNameAdjuster)
-
-
Method Details
-
heartbeat
public void heartbeat(Map<String, ?> partition, Map<String, throws InterruptedException?> offset, BlockingConsumer<org.apache.kafka.connect.source.SourceRecord> consumer) Description copied from interface:HeartbeatGenerates a heartbeat record if defined time has elapsed- Specified by:
heartbeatin interfaceHeartbeat- Parameters:
partition- partition for the heartbeat recordoffset- offset for the heartbeat recordconsumer- - a code to place record among others to be sent into Connect- Throws:
InterruptedException
-
heartbeat
public void heartbeat(Map<String, ?> partition, Heartbeat.OffsetProducer offsetProducer, BlockingConsumer<org.apache.kafka.connect.source.SourceRecord> consumer) throws InterruptedExceptionDescription copied from interface:HeartbeatGenerates a heartbeat record if defined time has elapsed- Specified by:
heartbeatin interfaceHeartbeat- Parameters:
partition- partition for the heartbeat recordoffsetProducer- lazily calculated offset for the heartbeat recordconsumer- - a code to place record among others to be sent into Connect- Throws:
InterruptedException
-
forcedBeat
public void forcedBeat(Map<String, ?> partition, Map<String, throws InterruptedException?> offset, BlockingConsumer<org.apache.kafka.connect.source.SourceRecord> consumer) Description copied from interface:HeartbeatGenerates a heartbeat record unconditionaly- Specified by:
forcedBeatin interfaceHeartbeat- Parameters:
partition- partition for the heartbeat recordoffset- offset for the heartbeat recordconsumer- - a code to place record among others to be sent into Connect- Throws:
InterruptedException
-
isEnabled
public boolean isEnabled()Description copied from interface:HeartbeatWhether heartbeats are enabled or not. -
serverNameKey
Produce a key struct based on the server name and KEY_SCHEMA -
messageValue
private org.apache.kafka.connect.data.Struct messageValue()Produce a value struct containing the timestamp -
heartbeatRecord
private org.apache.kafka.connect.source.SourceRecord heartbeatRecord(Map<String, ?> sourcePartition, Map<String, ?> sourceOffset) Produce an empty record to the heartbeat topic. -
resetHeartbeat
-