class ConsumerFetcherThread extends ShutdownableThread {

  public ConsumerFetcherThread(String threadName, CustomizedConsumerConfig properties,
      RateLimiter rateLimiter, BlockingQueue<FetchedDataChunk> chunkQueue) {
    super(threadName, true);
    this.fetchBackOffMs = properties.getFetcherThreadBackoffMs();
    this.offsetMonitorMs = properties.getOffsetMonitorInterval();
    this.pollTimeoutMs = properties.getPollTimeoutMs();
    this.kafkaConsumer = new KafkaConsumer(properties);
    KafkaUReplicatorMetricsReporter.get()
        .registerKafkaMetrics("consumer." + threadName, kafkaConsumer.metrics());
    this.rateLimiter = rateLimiter;
    this.chunkQueue = chunkQueue;
  }

  public  ConsumerFetcherThread(String threadName, CustomizedConsumerConfig properties,
      RateLimiter rateLimiter, BlockingQueue<FetchedDataChunk> chunkQueue);

}