kafka消费者参数配置

参数默认配置

auto.commit.interval.ms = 5000
check.crcs = true
client.id = 
connections.max.idle.ms = 540000
enable.auto.commit = false
exclude.internal.topics = true
fetch.max.wait.ms = 500
fetch.min.bytes = 1
group.id = bigdata
heartbeat.interval.ms = 3000
interceptor.classes = []
internal.leave.group.on.close = true
isolation.level = read_uncommitted
key.deserializer = class org.apache.kafka.common.serialization.StringDeserializer
# 一次fetch请求,从一个broker中取得的records最大大小
fetch.max.bytes = 52428800
# 一次fetch请求,从一个partition中取得的records最大大小
# 如果在从topic中第一个非空的partition取消息时,如果取到的第一个record的大小就超过这个配置时,仍然会读取这个record,也就是说在这片情况下,只会返回这一条record。
#  broker、topic都会对producer发给它的message size做限制。
# 所以在配置这值时,可以参考broker的message.max.bytes 和 topic的max.message.bytes的配置。
max.partition.fetch.bytes = 1048576
# 这个是拉取的最大时间间隔,如果你一次拉取的比较多,建议加大这个值
# 长时间没有调用poll,且间隔超过这个值时,就会认为这个consumer失败了
max.poll.interval.ms = 300000
# 默认拉500条数据
# Consumer每次调用poll()时取到的records的最大数。
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

# 请求发起后,并不一定会很快接收到响应信息。这个配置就是来配置请求超时时间的。默认值是:305000 (305 s)
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的最大时间,如果在这个时间内消费者没有上报状态则认为消费者已经断开10秒
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

 

代码中的poll(timeout)

ConsumerRecords<String, String> records = consumer.poll(2000);

这个timeout表示的意思是,如果Kafak中没有消息,会隔timeout这个值读一次。比如上面代码设置了2秒,也是就2秒后会查一次。
如果Kafka中还有消息没有消费的话,会马上去读,而不需要等待。

发布了183 篇原创文章 · 获赞 126 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/young_0609/article/details/104475592