Debian Kafka消费者核心配置参数及调优指南
host:port(如localhost:9092,192.168.1.2:9092)。必填项,建议配置3个以上Broker地址以避免单点故障。org.apache.kafka.common.serialization.StringDeserializer(字符串)、org.apache.kafka.common.serialization.IntegerDeserializer(整数)。false(手动提交可避免因自动提交过早导致的数据丢失)。enable.auto.commit=true时生效),默认5000ms(5秒)。调整此值可平衡数据一致性(更短间隔)与性能(更长间隔)。earliest:从分区最早的消息开始消费;latest(默认):从分区最新的消息开始消费;none:抛出NoOffsetForPartitionException异常。RangeAssignor(默认):按分区范围分配,可能导致分区分配不均;RoundRobinAssignor:轮询分配,更均衡;StickyAssignor:粘性分配,尽量保持原有分区分配,减少Rebalance时的分区迁移。poll()调用返回的最大消息数,默认500。调优建议:
poll()调用的最大间隔时间(默认5分钟)。若超过此时间未调用poll(),消费者会被踢出组并触发Rebalance。调优建议:
fetch.min.bytes:Broker返回给消费者的最小数据量(默认1字节),不足时等待fetch.max.wait.ms;fetch.max.wait.ms:Broker等待满足fetch.min.bytes的最长时间(默认500ms)。fetch.min.bytes(如1MB)和fetch.max.wait.ms(如1秒),减少网络请求次数,提高吞吐量。session.timeout.ms:消费者与Broker的心跳超时时间(默认45秒),超时则视为消费者离线,触发Rebalance;heartbeat.interval.ms:消费者发送心跳的间隔时间(默认3秒)。heartbeat.interval.ms需小于session.timeout.ms的1/3(如session.timeout.ms=30000,heartbeat.interval.ms=10000),确保及时检测消费者状态。read_uncommitted(默认):消费所有消息(包括未提交的事务消息);read_committed:仅消费已提交的事务消息(避免脏数据)。read_committed。