Kafka消息发送流程_kafka

消息发送高阶用法

自定义拦截器

自定义序列化

自定义分区器

核心参数

https://kafka.apache.org/0110/documentation.html

参数名

描述

默认值

bootstrap.servers

格式为host1:port1,host2:port2,…

key.serializer

value.serializer

retries

0

retry.backoff.ms

上次发送失败,重试的时间间隔

100

partitioner.class

消息的分区策略

org.apache.kafka.clients.producer.internals.DefaultPartitioner

acks

可选值为[all, -1, 0, 1]

1

batch.size

batch的大小,默认为16kb,如果batch太小,会导致频繁网络请求,吞吐量下降,如果batch太大,会导致一条消息需要等待很久才能被发送出去

16k

linger.ms

超过linger.ms指定的时间,batch还没满,也会被发送出去,避免消息的延迟太长

0

max.request.size

限制发送出去的消息大小

1m

request.timeout.ms

消息发送的超时时间,默认30s,如果30s内收不到响应,会抛出 TimeoutException

30s

参考博客

[1]https://qiankunli.github.io/2017/12/08/kafka_clients.html
[2]https://cloud.tencent.com/developer/article/1990530