1 个回答
提升java生产者的吞吐量,示例代码如下:
Properties props = new Properties();
// 提升批次容量(默认16KB,建议调整到512KB-1MB)
props.put("batch.size", 524288);
// 延长批次等待时间(默认0ms,建议10-100ms)
props.put("linger.ms", 50);
// 启用压缩降低网络开销(推荐lz4/zstd)
props.put("compression.type", "lz4");
// 增大发送缓冲区(默认128KB,建议调整到512KB)
props.put("buffer.memory", 524288);
// 提高重试次数(默认INT.MAX)
props.put("retries", 30);
// 延长请求超时时间(默认30s,高负载时建议120s)
props.put("request.timeout.ms", 120000);
KafkaProducer<String, String> producer = new KafkaProducer<>(props);
上述关键信息说明:batch.size与linger.ms配合实现"空间换时间"策略
lz4压缩算法CPU占用率比gzip低50%,吞吐量提升2-3倍
缓冲区内存需根据分区数动态调整(建议每分区至少64KB)
发布于:1个月前 (03-21) IP属地:四川省
我来回答
您需要 登录 后回答此问题!