public class EventDispatcher<T extends DataCollectionId> extends Object
DatabaseSchema. But based on the applying whitelist/blacklist configuration,
events may be not be dispatched at all.
This router is also in charge of emitting heartbeat messages, exposing of metrics via JMX etc.
| Modifier and Type | Class and Description |
|---|---|
private class |
EventDispatcher.BufferingSnapshotChangeRecordReceiver |
private class |
EventDispatcher.SchemaChangeEventReceiver |
static interface |
EventDispatcher.SnapshotReceiver
Change record receiver used during snapshotting.
|
private class |
EventDispatcher.StreamingChangeRecordReceiver |
| Modifier and Type | Field and Description |
|---|---|
private ChangeEventCreator |
changeEventCreator |
private DataChangeEventListener |
eventListener |
private DataCollectionFilters.DataCollectionFilter<T> |
filter |
private Heartbeat |
heartbeat |
private HistorizedDatabaseSchema<T> |
historizedSchema |
private static org.slf4j.Logger |
LOGGER |
private ChangeEventQueue<DataChangeEvent> |
queue |
private DatabaseSchema<T> |
schema |
private EventDispatcher.StreamingChangeRecordReceiver |
streamingReceiver
Change event receiver for events dispatched from a streaming change event source.
|
private TopicSelector<T> |
topicSelector |
| Constructor and Description |
|---|
EventDispatcher(CommonConnectorConfig connectorConfig,
TopicSelector<T> topicSelector,
DatabaseSchema<T> schema,
ChangeEventQueue<DataChangeEvent> queue,
DataCollectionFilters.DataCollectionFilter<T> filter,
ChangeEventCreator changeEventCreator) |
| Modifier and Type | Method and Description |
|---|---|
void |
dispatchDataChangeEvent(T dataCollectionId,
ChangeRecordEmitter changeRecordEmitter)
Dispatches one or more
DataChangeEvents. |
void |
dispatchHeartbeatEvent(OffsetContext offset) |
void |
dispatchSchemaChangeEvent(T dataCollectionId,
SchemaChangeEventEmitter schemaChangeEventEmitter) |
void |
dispatchSnapshotEvent(T dataCollectionId,
ChangeRecordEmitter changeRecordEmitter,
EventDispatcher.SnapshotReceiver receiver) |
private void |
enqueueHeartbeat(org.apache.kafka.connect.source.SourceRecord record) |
EventDispatcher.SnapshotReceiver |
getSnapshotChangeEventReceiver() |
void |
setEventListener(DataChangeEventListener eventListener)
Provide a listener that is invoked for every incoming event to be processed.
|
private static final org.slf4j.Logger LOGGER
private final TopicSelector<T extends DataCollectionId> topicSelector
private final DatabaseSchema<T extends DataCollectionId> schema
private final HistorizedDatabaseSchema<T extends DataCollectionId> historizedSchema
private final ChangeEventQueue<DataChangeEvent> queue
private final DataCollectionFilters.DataCollectionFilter<T extends DataCollectionId> filter
private final ChangeEventCreator changeEventCreator
private final Heartbeat heartbeat
private DataChangeEventListener eventListener
private final EventDispatcher.StreamingChangeRecordReceiver streamingReceiver
public EventDispatcher(CommonConnectorConfig connectorConfig, TopicSelector<T> topicSelector, DatabaseSchema<T> schema, ChangeEventQueue<DataChangeEvent> queue, DataCollectionFilters.DataCollectionFilter<T> filter, ChangeEventCreator changeEventCreator)
public void dispatchSnapshotEvent(T dataCollectionId, ChangeRecordEmitter changeRecordEmitter, EventDispatcher.SnapshotReceiver receiver) throws InterruptedException
InterruptedExceptionpublic EventDispatcher.SnapshotReceiver getSnapshotChangeEventReceiver()
public void dispatchDataChangeEvent(T dataCollectionId, ChangeRecordEmitter changeRecordEmitter) throws InterruptedException
DataChangeEvents. If the given data collection is included in the currently
captured set of collections, the given emitter will be invoked, so it can emit one or more events (in the common
case, one event will be emitted, but e.g. in case of PK updates, it may be a deletion and a creation event). The
receiving coordinator creates SourceRecords for all emitted events and passes them to this dispatcher's
ChangeEventCreator for converting them into data change events.InterruptedExceptionpublic void dispatchSchemaChangeEvent(T dataCollectionId, SchemaChangeEventEmitter schemaChangeEventEmitter) throws InterruptedException
InterruptedExceptionpublic void dispatchHeartbeatEvent(OffsetContext offset) throws InterruptedException
InterruptedExceptionprivate void enqueueHeartbeat(org.apache.kafka.connect.source.SourceRecord record)
throws InterruptedException
InterruptedExceptionpublic void setEventListener(DataChangeEventListener eventListener)
eventListener - Copyright © 2019 JBoss by Red Hat. All rights reserved.