但是异步提交我们是不知道消费情况的,所以就可以在Kafka消费异常时,通过其回调来告知程序异常情况,从而进行日志记录。
面试官思考中…
面试官:消费者分区呢
嗯嗯。分区的作用主要就是为了提高Kafka处理消息吞吐量。
每一个topic会被分为多个分区。
假如同一个topic下有n个分区、n个消费者,每个分区会发送消息给对应的一个消费者,这样n个消费者就可以负载均衡地处理消息。
同时生产者会发送消息给不同分区,每个分区分给不同的brocker处理,让集群平坦压力,这样大大提高了Kafka的吞吐量。
面试官思考中…
面试官:你说说消费者手动提交和自动提交,有什么区别
其实就是两种不同的客户端提交方式。
- 自动提交的话,通过设置enable.auto.commit为true,每过5秒消费者客户端就会自动提交最大偏移量
- 手动提交的话,通过设置enable.auto.commit为false&#