public static void maybeConfigureInterceptorsStreams(final Properties streamsConfig) { if (hasMonitoringConsumerInterceptor() && hasMonitoringProducerInterceptor()) { streamsConfig.put(StreamsConfig.producerPrefix(ProducerConfig.INTERCEPTOR_CLASSES_CONFIG), PRODUCER_INTERCEPTOR); streamsConfig.put(StreamsConfig.mainConsumerPrefix(ConsumerConfig.INTERCEPTOR_CLASSES_CONFIG), CONSUMER_INTERCEPTOR); } }
public static Properties configStreams(String configFile, String stateDir, String serviceID) throws IOException { Properties props = LoadConfigs.loadConfig(configFile); props.put(StreamsConfig.APPLICATION_ID_CONFIG, serviceID); props.put(StreamsConfig.STATE_DIR_CONFIG, stateDir); props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); // Recommended cloud configuration for Streams (basically, wait for longer before exiting if brokers disconnect) props.put(StreamsConfig.REPLICATION_FACTOR_CONFIG, 3); props.put(StreamsConfig.producerPrefix(ProducerConfig.RETRIES_CONFIG), 2147483647); props.put("producer.confluent.batch.expiry.ms", 9223372036854775807L); props.put(StreamsConfig.producerPrefix(ProducerConfig.REQUEST_TIMEOUT_MS_CONFIG), 300000); props.put(StreamsConfig.producerPrefix(ProducerConfig.MAX_BLOCK_MS_CONFIG), 9223372036854775807L); return props; } }