Kafka连接池设置建议
host:port,host:port),提升集群容错能力;避免使用单个地址,防止单点故障导致连接失效。order-service-producer),方便Broker端日志定位问题,便于排查连接异常。client.dns.lookup=use_all_dns_ips(获取所有IP地址),云上或SLB场景可配合resolve_canonical_bootstrap_servers_only=true(仅解析规范主机名),避免DNS缓存问题导致的连接失败。all(或-1),要求所有ISR(同步副本)确认写入,确保数据不丢失;这是生产环境的强一致性要求。3(或更大,如5),配合delivery.timeout.ms(建议设为request.timeout.ms的2-4倍,如60000-120000),处理临时性故障(如网络抖动)的重试,避免消息丢失。true,开启幂等性,避免重试导致的消息重复;与acks=all配合使用,是生产环境的最佳实践。16KB,建议调大至32KB-128KB(根据内存情况),增加单批次消息量,减少网络请求次数,提升吞吐量;但过大的批次会增加延迟。5ms(Kafka 4.0+),建议设置为10-50ms,让批次有更多时间攒满,提高吞吐量;低延迟场景可设为0-2ms,但会牺牲少量吞吐。lz4(兼顾吞吐量与压缩比,约3-4倍),或zstd(更高压缩比,约5-8倍,但CPU开销略大);开启压缩可减少网络传输和磁盘占用,适合高带宽成本场景。32MB,建议调大至64MB-128MB(根据生产者吞吐量),作为生产端消息缓冲池;过小会导致频繁阻塞(默认max.block.ms=60000),无法及时发送消息。5,幂等开启时必须≤5(避免消息乱序);建议保持默认,若需更高吞吐且允许少量乱序,可设为10,但需评估业务影响。500,建议根据消费者处理能力调整(如100-1000),控制每次拉取的记录数;过大会导致内存溢出,过小会增加拉取次数,降低吞吐。5分钟,建议设置为消费者处理单条消息的最大时间(如30秒-5分钟);若处理时间过长,会触发重平衡,导致连接断开。1,建议调大至1KB-1MB(如1024),减少拉取次数;增大该值可提高吞吐量,但会增加延迟。500ms,建议设置为100-1000ms,与fetch.min.bytes配合,平衡延迟与吞吐;过小会导致频繁拉取,过大则会增加延迟。num.partitions)设置为消费者线程数的1-2倍(如消费者有10个线程,分区数设为10-20),优化并行处理能力;副本数(default.replication.factor)设置为3,保证高可用性。32GB内存(用于缓存消息和索引),使用SSD/NVMe硬盘(减少磁盘I/O瓶颈),多核CPU(提升并发处理能力);网络带宽需满足峰值吞吐量(如1Gbps带宽支持约10万条/秒的消息传输)。kafka-consumer-groups.sh)或第三方工具(如Prometheus+Granafa、Datadog),监控连接数、吞吐量、延迟、错误率等指标,及时发现连接池瓶颈。buffer.memory缓解阻塞,调大max.poll.records提高吞吐),定期进行压力测试(如使用kafka-producer-perf-test.sh),验证配置效果。