Kafka Consumer java api 配置:
- group.id: 指定consumer所属的consumer group
- consumer.id: 如果不指定会自动生成
- socket.timeout.ms: 网络请求的超时设定
- socket.receive.buffer.bytes: Socket的接收缓存大小
- fetch.message.max.bytes: 试图获取的消息大小之和(bytes)
- num.consumer.fetchers:该消费去获取data的总线程数
- auto.commit.enable: 如果是true,定期向zk中更新Consumer已经获取的last message offset(所获取的最后一个batch的first messageoffset)
- auto.commit.interval.ms:Consumer向ZK中更新offset的时间间隔
- queued.max.message.chunks:默认为2
- rebalance.max.retries: 在rebalance时retry的最大次数,默认为4
- fetch.min.bytes: 对于一个fetch request, Broker Server应该返回的最小数据大小,达不到该值request会被block, 默认是1字节。
- fetch.wait.max.ms: Server在回答一个fetch request之前能block的最大时间(可能的block原因是返回数据大小还没达到fetch.min.bytes规定);
- rebalance.backoff.ms: 当rebalance发生时,两个相邻retry操作之间需要间隔的时间。
- refresh.leader.backoff.ms: 如果一个Consumer发现一个partition暂时没有leader,那么Consumer会继续等待的最大时间窗口(这段时间内会refresh partition leader);
- auto.offset.reset:当发现offset超出合理范围(out ofrange)时,应该设成的大小(默认是设成offsetRequest中指定的值):
smallest: 自动把该consumer的offset设为最小的offset;
largest: 自动把该consumer的offset设为最大的offset;
anything else: throw exception to the consumer; - consumer.timeout.ms: 如果在该规定时间内没有消息可供消费,则向Consumer抛出timeout exception;该参数默认为-1, 即不指定Consumer timeout;
- client.id:区分不同consumer的ID,默认是group.id