2016-07-15 112 views
9

Desidero aumentare session.timeout.ms per consentire più tempo per l'elaborazione dei messaggi ricevuti tra le chiamate poll(). Tuttavia, quando cambio session.timeout.ms a un valore superiore a 30000, non riesce a creare oggetti Consumer e genera errori di sotto.Perché non posso aumentare session.timeout.ms?

Qualcuno potrebbe dire perché non posso aumentare il valore session.timeout.ms o se mi manca qualcosa?

0 [main] INFO org.apache.kafka.clients.consumer.ConsumerConfig - ConsumerConfig values: 

request.timeout.ms = 40000 
check.crcs = true 
retry.backoff.ms = 100 
ssl.truststore.password = null 
ssl.keymanager.algorithm = SunX509 
receive.buffer.bytes = 262144 
ssl.cipher.suites = null 
ssl.key.password = null 
sasl.kerberos.ticket.renew.jitter = 0.05 
ssl.provider = null 
sasl.kerberos.service.name = null 
session.timeout.ms = 40000 
sasl.kerberos.ticket.renew.window.factor = 0.8 
bootstrap.servers = [server-name:9092] 
client.id = 
fetch.max.wait.ms = 500 
fetch.min.bytes = 50000 
key.deserializer = class org.apache.kafka.common.serialization.StringDeserializer 
sasl.kerberos.kinit.cmd = /usr/bin/kinit 
auto.offset.reset = latest 
value.deserializer = class org.apache.kafka.common.serialization.StringDeserializer 
ssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1] 
partition.assignment.strategy = [org.apache.kafka.clients.consumer.RangeAssignor] 
ssl.endpoint.identification.algorithm = null 
max.partition.fetch.bytes = 2097152 
ssl.keystore.location = null 
ssl.truststore.location = null 
ssl.keystore.password = null 
metrics.sample.window.ms = 30000 
metadata.max.age.ms = 300000 
security.protocol = PLAINTEXT 
auto.commit.interval.ms = 5000 
ssl.protocol = TLS 
sasl.kerberos.min.time.before.relogin = 60000 
connections.max.idle.ms = 540000 
ssl.trustmanager.algorithm = PKIX 
group.id = test7 
enable.auto.commit = false 
metric.reporters = [] 
ssl.truststore.type = JKS 
send.buffer.bytes = 131072 
reconnect.backoff.ms = 50 
metrics.num.samples = 2 
ssl.keystore.type = JKS 
heartbeat.interval.ms = 3000 

Exception in thread "main" org.apache.kafka.common.KafkaException: riuscito a costruire kafka consumatore org.apache.kafka.clients.consumer.KafkaConsumer (KafkaConsumer.java.: 624) a org.apache.kafka.clients.consumer.KafkaConsumer. (KafkaConsumer.java:518) a org.apache.kafka.clients.consumer.KafkaConsumer. (KafkaConsumer.java:500)

+0

Puoi pubblicare l'intero errore? non ci sono abbastanza dettagli per aiutare qui. –

risposta

10

La gamma di consumatori s Il timeout di ession è controllato dal broker group.max.session.timeout.ms (predefinito 30s) e group.min.session.timeout.ms (predefinito 6s).

È necessario aumentare group.max.session.timeout.ms prima nel lato broker, altrimenti si otterrà "Il timeout della sessione non è compreso nell'intervallo accettabile.".

+0

Grazie, ma l'aggiunta/l'impostazione di group.max.session.timeout.ms = 3600000 in config/server.properties continua a non risolverlo. Comunque ora sto ricevendo "Causato da: org.apache.kafka.common.config.ConfigException: request.timeout.ms dovrebbe essere maggiore di session.timeout.ms e fetch.max.wait.ms" che è utile. – Deeps

+0

Questo ha funzionato dopo aver impostato request.timeout.ms su un valore maggiore di session.timeout.ms. – Deeps

2
  • Queste condizioni necessarie per essere tenere a mente per cambiare session.timeout.ms:
    1. group.max.session.timeout.ms nei server.properties> session.timeout.ms nel consumatore .proprietà.
    2. group.min.session.timeout.ms in server.properties < session.timeout.ms in consumer.properties.
    3. request.timeout.ms> session.timeout.ms e fetch.max.wait.ms
    4. (session.timeout.ms)/3> heartbeat.interval.ms
    5. session.timeout.ms> peggiore tempo di elaborazione del caso dei record del consumatore per sondaggio del consumatore (ms).