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
Modifier and TypeFieldDescription(package private) static final int
Default length of interval in which connector generates periodically heartbeat messages.(package private) static final String
Default prefix for names of heartbeat topicsprivate final Duration
private Threads.Timer
private final String
private final org.apache.kafka.connect.data.Schema
private static final org.slf4j.Logger
static final String
private final String
private final org.apache.kafka.connect.data.Schema
Fields inherited from interface io.debezium.heartbeat.Heartbeat
DEFAULT_NOOP_HEARTBEAT, HEARTBEAT_INTERVAL, HEARTBEAT_INTERVAL_PROPERTY_NAME, HEARTBEAT_TOPICS_PREFIX
-
Constructor Summary
ConstructorDescriptionHeartbeatImpl
(Duration heartbeatInterval, String topicName, String key, SchemaNameAdjuster schemaNameAdjuster) -
Method Summary
Modifier and TypeMethodDescriptionvoid
forcedBeat
(Map<String, ?> partition, Map<String, ?> offset, BlockingConsumer<org.apache.kafka.connect.source.SourceRecord> consumer) Generates a heartbeat record unconditionalyvoid
heartbeat
(Map<String, ?> partition, Heartbeat.OffsetProducer offsetProducer, BlockingConsumer<org.apache.kafka.connect.source.SourceRecord> consumer) Generates a heartbeat record if defined time has elapsedvoid
heartbeat
(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.SourceRecord
heartbeatRecord
(Map<String, ?> sourcePartition, Map<String, ?> sourceOffset) Produce an empty record to the heartbeat topic.boolean
Whether heartbeats are enabled or not.private org.apache.kafka.connect.data.Struct
Produce a value struct containing the timestampprivate Threads.Timer
private org.apache.kafka.connect.data.Struct
serverNameKey
(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
public 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:Heartbeat
Generates a heartbeat record if defined time has elapsed- Specified by:
heartbeat
in 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:Heartbeat
Generates a heartbeat record if defined time has elapsed- Specified by:
heartbeat
in 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:Heartbeat
Generates a heartbeat record unconditionaly- Specified by:
forcedBeat
in 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:Heartbeat
Whether 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
-