Package io.debezium.server.http
Class HttpChangeConsumer
java.lang.Object
io.debezium.server.BaseChangeConsumer
io.debezium.server.http.HttpChangeConsumer
- All Implemented Interfaces:
io.debezium.engine.DebeziumEngine.ChangeConsumer<io.debezium.engine.ChangeEvent<Object,Object>>
@Named("http")
@Dependent
public class HttpChangeConsumer
extends BaseChangeConsumer
implements io.debezium.engine.DebeziumEngine.ChangeConsumer<io.debezium.engine.ChangeEvent<Object,Object>>
Implementation of the consumer that delivers the messages to an HTTP Webhook destination.
- Author:
- Chris Baumbauer
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate HttpClientprivate static final Stringprivate static final intprivate Stringprivate static final Longprivate static final org.slf4j.Loggerstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringprivate HttpRequest.Builderprivate static intprivate static final Longprivate static Durationprivate static DurationFields inherited from class io.debezium.server.BaseChangeConsumer
streamNameMapper -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) voidconnect()(package private) HttpRequestgenerateRequest(io.debezium.engine.ChangeEvent<Object, Object> record) voidhandleBatch(List<io.debezium.engine.ChangeEvent<Object, Object>> records, io.debezium.engine.DebeziumEngine.RecordCommitter<io.debezium.engine.ChangeEvent<Object, Object>> committer) (package private) voidinitWithConfig(org.eclipse.microprofile.config.Config config) private booleanrecordSent(io.debezium.engine.ChangeEvent<Object, Object> record) Methods inherited from class io.debezium.server.BaseChangeConsumer
convertHeaders, getBytes, getConfigSubset, getString, unsupportedTypeMessageMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.debezium.engine.DebeziumEngine.ChangeConsumer
supportsTombstoneEvents
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
PROP_PREFIX
- See Also:
-
PROP_WEBHOOK_URL
- See Also:
-
PROP_CLIENT_TIMEOUT
- See Also:
-
PROP_RETRIES
- See Also:
-
PROP_RETRY_INTERVAL
- See Also:
-
PROP_HEADERS_ENCODE_BASE64
- See Also:
-
PROP_HEADERS_PREFIX
- See Also:
-
HTTP_TIMEOUT
-
DEFAULT_RETRIES
private static final int DEFAULT_RETRIES- See Also:
-
RETRY_INTERVAL
-
DEFAULT_HEADERS_PREFIX
- See Also:
-
timeoutDuration
-
retries
private static int retries -
retryInterval
-
base64EncodeHeaders
private boolean base64EncodeHeaders -
headersPrefix
-
client
-
requestBuilder
-
-
Constructor Details
-
HttpChangeConsumer
public HttpChangeConsumer()
-
-
Method Details
-
connect
- Throws:
URISyntaxException
-
initWithConfig
@VisibleForTesting void initWithConfig(org.eclipse.microprofile.config.Config config) throws URISyntaxException - Throws:
URISyntaxException
-
handleBatch
public void handleBatch(List<io.debezium.engine.ChangeEvent<Object, Object>> records, io.debezium.engine.DebeziumEngine.RecordCommitter<io.debezium.engine.ChangeEvent<Object, throws InterruptedExceptionObject>> committer) - Specified by:
handleBatchin interfaceio.debezium.engine.DebeziumEngine.ChangeConsumer<io.debezium.engine.ChangeEvent<Object,Object>> - Throws:
InterruptedException
-
recordSent
private boolean recordSent(io.debezium.engine.ChangeEvent<Object, Object> record) throws InterruptedException- Throws:
InterruptedException
-
generateRequest
@VisibleForTesting HttpRequest generateRequest(io.debezium.engine.ChangeEvent<Object, Object> record)
-