Hi, Do you have the logs for the other instance?
Thanks, Damian On Fri, 15 Sep 2017 at 07:19 dev loper <spark...@gmail.com> wrote: > Dear Kafka Users, > > I am fairly new to Kafka Streams . I have deployed two instances of Kafka > 0.11 brokers on AWS M3.Xlarge insatnces. I have created a topic with 36 > partitions .and speperate application writes to this topic and it produces > records at the rate of 10000 messages per second. I have threes instances > of AWS M4.xlarge instance where my Kafka streams application is running > which consumes these messages produced by the other application. The > application starts up fine working fine and its processing messages on the > first instance, but when I start the same application on other instances > it is not starting even though the process is alive it is not processing > messages.Also I could see the other instances takes a long time to start . > > Apart from first instance, other instances I could see the consumer > getting added and removed repeatedly and I couldn't see any message > processing at all . I have attached the detailed logs where this behavior > is observed. > > Consumer is getting started with below log in these instances and getting > stopped with below log (* detailed logs attached *) > > INFO | 21:59:30 | consumer.ConsumerConfig (AbstractConfig.java:223) - > ConsumerConfig values: > auto.commit.interval.ms = 5000 > auto.offset.reset = latest > bootstrap.servers = [l-mykafkainstancekafka5101:9092, > l-mykafkainstancekafka5102:9092] > check.crcs = true > client.id = > connections.max.idle.ms = 540000 > enable.auto.commit = false > exclude.internal.topics = true > fetch.max.bytes = 52428800 > fetch.max.wait.ms = 500 > fetch.min.bytes = 1 > group.id = myKafka-kafkareplica101Sept08 > heartbeat.interval.ms = 3000 > interceptor.classes = null > internal.leave.group.on.close = true > isolation.level = read_uncommitted > key.deserializer = class mx.july.jmx.proximity.kafka.KafkaKryoCodec > max.partition.fetch.bytes = 1048576 > max.poll.interval.ms = 300000 > max.poll.records = 500 > metadata.max.age.ms = 300000 > metric.reporters = [] > metrics.num.samples = 2 > metrics.recording.level = INFO > metrics.sample.window.ms = 30000 > partition.assignment.strategy = [class > org.apache.kafka.clients.consumer.RangeAssignor] > receive.buffer.bytes = 65536 > reconnect.backoff.max.ms = 1000 > reconnect.backoff.ms = 50 > request.timeout.ms = 305000 > retry.backoff.ms = 100 > sasl.jaas.config = null > sasl.kerberos.kinit.cmd = /usr/bin/kinit > sasl.kerberos.min.time.before.relogin = 60000 > sasl.kerberos.service.name = null > sasl.kerberos.ticket.renew.jitter = 0.05 > sasl.kerberos.ticket.renew.window.factor = 0.8 > sasl.mechanism = GSSAPI > security.protocol = PLAINTEXT > send.buffer.bytes = 131072 > session.timeout.ms = 10000 > ssl.cipher.suites = null > ssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1] > ssl.endpoint.identification.algorithm = null > ssl.key.password = null > ssl.keymanager.algorithm = SunX509 > ssl.keystore.location = null > ssl.keystore.password = null > ssl.keystore.type = JKS > ssl.protocol = TLS > ssl.provider = null > ssl.secure.random.implementation = null > ssl.trustmanager.algorithm = PKIX > ssl.truststore.location = null > ssl.truststore.password = null > ssl.truststore.type = JKS > value.deserializer = class my.dev.MessageUpdateCodec > > > DEBUG | 21:59:30 | consumer.KafkaConsumer (KafkaConsumer.java:1617) - The > Kafka consumer has closed. and the whole process repeats. > > > > Below you can find my startup code for kafkastreams and the parameters > which I have configured for starting the kafkastreams application . > > private static Properties settings = new Properties(); > settings.put(StreamsConfig.APPLICATION_ID_CONFIG, > "mykafkastreamsapplication"); > settings.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,"latest"); > settings.put(ConsumerConfig.HEARTBEAT_INTERVAL_MS_CONFIG,"10000"); > settings.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG,"30000"); > > settings.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG,Integer.MAX_VALUE); > settings.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, "10000"); > > settings.put(ConsumerConfig.CONNECTIONS_MAX_IDLE_MS_CONFIG,"60000"); > > KStreamBuilder builder = new KStreamBuilder(); > KafkaStreams streams = new KafkaStreams(builder, settings); > builder.addSource(..... > .addProcessor ............. > .addProcessor ........ > > > .addStateStore(...................).persistent().build(),"myprocessor") > .addSink .............. > . addSink .............. > streams.start(); > > and I am using a Simple processor to process my logic .. > > public class InfoProcessor extends AbstractProcessor<Key, Update> { > private static Logger logger = Logger.getLogger(InfoProcessor.class); > private ProcessorContext context; > private KeyValueStore<Key, Info> infoStore; > > @Override > @SuppressWarnings("unchecked") > public void init(ProcessorContext context) { > this.context = context; > this.context.schedule(Constants.BATCH_DURATION_SECONDS * 1000); > infoStore = (KeyValueStore<Key, Info>) > context.getStateStore("InfoStore"); > } > > @Override > public void process(Key key, Update update) { > try { > if (key != null && update != null) { > Info info = infoStore.get(key); > // merge logic > infoStore.put(key, info); > } > > } catch (Exception e) { > logger.error(e.getMessage(), e); > } finally { > } > context.commit(); > } > > @Override > public void punctuate(long timestamp) { > try { > KeyValueIterator<Key, Info> iter = this.infoStore.all(); > while (iter.hasNext()) { > // processing logic > > } > iter.close(); > context.commit(); > } catch (Exception e) { > logger.error(e.getMessage(), e); > } > } > > > > >