消息发送高阶用法
自定义拦截器
自定义序列化
自定义分区器
核心参数
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