Spring Kafka 参数说明

120 阅读1分钟

kafka servers

spring.kafka.bootstrap-servers=xx.xx.xx.xx:9092,xx.xxx.xx.xx:9092

client-id

spring.kafka.client-id=xxxx

生产者参数

acks=0 : 生产者在成功写入消息之前不会等待任何来自服务器的响应 acks=1 : 只要集群的首领节点收到消息,生产者就会收到一个来自服务器成功响应 acks=all :只有当所有参与复制的节点全部收到消息时,生产者才会收到一个来自服务器的成功响应

spring.kafka.producer.batch-size=16384

当有多个消息需要被发送到同一个分区时,生产者会把它们放在同一个批次里。该参数指定了一个批次可以使用的内存大小,单位字节数

spring.kafka.producer.retries=3

发生错误后,消息重发的次数

spring.kafka.producer.buffer-memory=33554432

生产者内存缓冲区的大小

序列化

spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer

spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer

消费者参数

spring.kafka.consumer.auto-commit-interval=1000

自动提交的时间间隔

spring.kafka.consumer.auto-offset-reset=latest

offset的消费位置

spring.kafka.consumer.enable-auto-commit=false

是否自动提交

spring.kafka.consumer.max.poll.interval.ms=600000

最大拉取间隔时间

spring.kafka.consumer.session.timeout.ms=10000

回话超时时间

序列化

spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer

spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer

消费组

spring.kafka.consumer.groupId=dmsdecision

最大拉取条数

spring.kafka.consumer.max-poll-records=30

心跳时间

spring.kafka.consumer.heartbeat-interval=3000

监听线程数未设置时,该参数生效

spring.kafka.properties.parsefileContainerFactory_concurrency

spring.kafka.listener.concurrency=30

提交

  • MANUAL 当每一批poll()的数据被消费者监听器(ListenerConsumer)处理之后, 手动调用Acknowledgment.acknowledge()后提交

  • MANUAL_IMMEDIATE 手动调用Acknowledgment.acknowledge()后立即提交

  • RECORD 当每一条记录被消费者监听器(ListenerConsumer)处理之后提交

  • BATCH 当每一批poll()的数据被消费者监听器(ListenerConsumer)处理之后提交

  • TIME 当每一批poll()的数据被消费者监听器(ListenerConsumer)处理之后,距离上次提交时间大于TIME时提交

  • COUNT 当每一批poll()的数据被消费者监听器(ListenerConsumer)处理之后,被处理record数量大于等于COUNT时提交

  • COUNT_TIME TIME或COUNT 有一个条件满足时提交

ack_mode为COUNT/COUNT_TIME

  • spring.kafka.listener.ack-mode=manual_immediate

  • spring.kafka.listener.ack-count=

  • spring.kafka.listener.ack-time=

  • spring.kafka.listener.poll-timeout=