为什么我不能增加session.timeout.ms?

Dee*_*eps 13 apache-kafka

我想增加session.timeout.ms以允许更长的时间来处理在poll()呼叫之间接收的消息.但是,当我更改session.timeout.ms为高于30000的值时,它无法创建Consumer对象并抛出错误.

任何人都可以告诉我为什么不能增加session.timeout.ms价值或者我错过了什么?

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
Run Code Online (Sandbox Code Playgroud)

线程"main"中的异常org.apache.kafka.common.KafkaException:无法在org.apache.kafka.clients上的org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:624)构造kafka使用者. consumer.KafkaConsumer.(KafkaConsumer.java:518)org.apache.kafka.clients.consumer.KafkaConsumer.(KafkaConsumer.java:500)

Sha*_*Guo 14

消费者会话超时的范围由代理group.max.session.timeout.ms(默认30秒)和group.min.session.timeout.ms(默认为6秒)控制.

您应该首先在代理端增加group.max.session.timeout.ms,否则您将得到"会话超时不在可接受的范围内".

  • 这在将 request.timeout.ms 设置为大于 session.timeout.ms 的值后起作用。 (2认同)

pre*_*am 13

  • 更改session.timeout.ms需要牢记这些条件:
    1. consumer.properties中的server.properties> session.timeout.ms中的group.max.session.timeout.ms.
    2. consumer.properties中server.properties <session.timeout.ms中的group.min.session.timeout.ms.
    3. request.timeout.ms> session.timeout.ms和fetch.max.wait.ms
    4. (session.timeout.ms)/ 3> heartbeat.interval.ms
    5. session.timeout.ms>每个消费者轮询的消费者记录的最坏情况处理时间(ms).