Class VeniceChangelogConsumerClientFactory

java.lang.Object
com.linkedin.davinci.consumer.VeniceChangelogConsumerClientFactory

public class VeniceChangelogConsumerClientFactory extends Object
  • Field Details

  • Constructor Details

    • VeniceChangelogConsumerClientFactory

      public VeniceChangelogConsumerClientFactory(ChangelogClientConfig globalChangelogClientConfig, io.tehuti.metrics.MetricsRepository metricsRepository)
  • Method Details

    • setD2ControllerClient

      protected void setD2ControllerClient(D2ControllerClient d2ControllerClient)
    • setConsumer

      protected void setConsumer(PubSubConsumerAdapter consumer)
    • getChangelogConsumer

      public <K, V> VeniceChangelogConsumer<K,V> getChangelogConsumer(String storeName)
      Default method to create a VeniceChangelogConsumer given a storeName.
    • getChangelogConsumer

      public <K, V> VeniceChangelogConsumer<K,V> getChangelogConsumer(String storeName, String consumerId)
    • getChangelogConsumer

      public <K, V> VeniceChangelogConsumer<K,V> getChangelogConsumer(String storeName, String consumerId, Class<V> valueClass)
      Creates a VeniceChangelogConsumer with consumer id. This is used to create multiple consumers so that each consumer can only subscribe to certain partitions. Multiple such consumers can work in parallel.
    • getChangelogConsumer

      public <K, V> VeniceChangelogConsumer<K,V> getChangelogConsumer(String storeName, String consumerId, Class<V> valueClass, String viewNameOverride)
    • getStatefulChangelogConsumer

      public <K, V> StatefulVeniceChangelogConsumer<K,V> getStatefulChangelogConsumer(String storeName)
    • getStatefulChangelogConsumer

      public <K, V> StatefulVeniceChangelogConsumer<K,V> getStatefulChangelogConsumer(String storeName, Class<K> keyClass, Class<V> valueClass, org.apache.avro.Schema valueSchema)
      Parameters:
      keyClass - The SpecificRecord class for your key
      valueClass - The SpecificRecord class for your value
      valueSchema - The Schema for your values
    • getStatefulChangelogConsumer

      public <K, V> StatefulVeniceChangelogConsumer<K,V> getStatefulChangelogConsumer(String storeName, Class<V> valueClass)
    • getVersionSpecificChangelogConsumer

      public <K, V> VeniceChangelogConsumer<K,V> getVersionSpecificChangelogConsumer(String storeName, int storeVersion, boolean includeControlMessages)
    • getVersionSpecificChangelogConsumer

      public <K, V> VeniceChangelogConsumer<K,V> getVersionSpecificChangelogConsumer(String storeName, int storeVersion, boolean includeControlMessages, boolean deserializeReplicationMetadata)
      Subscribes to a specific version of a Venice store. This is only intended for internal use.
    • getVersionSpecificChangelogConsumer

      public <K, V> VeniceChangelogConsumer<K,V> getVersionSpecificChangelogConsumer(String storeName, int storeVersion)
      Creates a version specific changelog consumer without control messages.
    • getPubSubConsumer

      protected static PubSubConsumerAdapter getPubSubConsumer(ChangelogClientConfig changelogClientConfig, PubSubMessageDeserializer pubSubMessageDeserializer, String consumerName)
    • setViewClassGetter

      protected void setViewClassGetter(VeniceChangelogConsumerClientFactory.ViewClassGetter viewClassGetter)
    • deregisterClient

      public void deregisterClient(String consumerName)
      Removes client from the map, so it be cleaned up by Garbage Collection