Class PubSubChangeConsumer

java.lang.Object
io.debezium.server.BaseChangeConsumer
io.debezium.server.pubsub.PubSubChangeConsumer
All Implemented Interfaces:
io.debezium.engine.DebeziumEngine.ChangeConsumer<io.debezium.engine.ChangeEvent<Object,Object>>

@Named("pubsub") @Dependent public class PubSubChangeConsumer extends BaseChangeConsumer implements io.debezium.engine.DebeziumEngine.ChangeConsumer<io.debezium.engine.ChangeEvent<Object,Object>>
Implementation of the consumer that delivers the messages into Google Pub/Sub destination.
Author:
Jiri Pechanec
  • Field Details

    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • PROP_PREFIX

      private static final String PROP_PREFIX
      See Also:
    • PROP_PROJECT_ID

      private static final String PROP_PROJECT_ID
      See Also:
    • projectId

      private String projectId
    • publishers

      private final Map<String,com.google.cloud.pubsub.v1.Publisher> publishers
    • publisherBuilder

      private PubSubChangeConsumer.PublisherBuilder publisherBuilder
    • orderingEnabled

      boolean orderingEnabled
    • nullKey

      String nullKey
    • maxDelayThresholdMs

      Integer maxDelayThresholdMs
    • maxBufferSize

      Long maxBufferSize
    • maxBufferBytes

      Long maxBufferBytes
    • flowControlEnabled

      boolean flowControlEnabled
    • maxOutstandingMessages

      Long maxOutstandingMessages
    • maxOutstandingRequestBytes

      Long maxOutstandingRequestBytes
    • maxTotalTimeoutMs

      Integer maxTotalTimeoutMs
    • maxRequestTimeoutMs

      Integer maxRequestTimeoutMs
    • initialRetryDelay

      Integer initialRetryDelay
    • retryDelayMultiplier

      Double retryDelayMultiplier
    • maxRetryDelay

      Long maxRetryDelay
    • initialRpcTimeout

      Integer initialRpcTimeout
    • rpcTimeoutMultiplier

      Double rpcTimeoutMultiplier
    • address

      Optional<String> address
    • customPublisherBuilder

      @Inject @CustomConsumerBuilder jakarta.enterprise.inject.Instance<PubSubChangeConsumer.PublisherBuilder> customPublisherBuilder
    • channel

      private io.grpc.ManagedChannel channel
    • channelProvider

      private com.google.api.gax.rpc.TransportChannelProvider channelProvider
    • credentialsProvider

      private com.google.api.gax.core.CredentialsProvider credentialsProvider
  • Constructor Details

    • PubSubChangeConsumer

      public PubSubChangeConsumer()
  • Method Details

    • connect

      @PostConstruct void connect()
    • close

      @PreDestroy void close()
    • handleBatch

      public void handleBatch(List<io.debezium.engine.ChangeEvent<Object,Object>> records, io.debezium.engine.DebeziumEngine.RecordCommitter<io.debezium.engine.ChangeEvent<Object,Object>> committer) throws InterruptedException
      Specified by:
      handleBatch in interface io.debezium.engine.DebeziumEngine.ChangeConsumer<io.debezium.engine.ChangeEvent<Object,Object>>
      Throws:
      InterruptedException
    • supportsTombstoneEvents

      public boolean supportsTombstoneEvents()
      Specified by:
      supportsTombstoneEvents in interface io.debezium.engine.DebeziumEngine.ChangeConsumer<io.debezium.engine.ChangeEvent<Object,Object>>