需要理解offset的提交机制、保存。比如commitSync、commitAsync、__consumer_offsets。 深入还能了解offset的恢复。
消费者组需要理解两个角色:
客户端与coordinator间除了发送Join/Sync请求,还有心跳包、提交位移请求。Join和Sync请求会对消费者组的状态产生影响,而心跳包、提交唯一请求会捕获消费者组状态的改变。
KafkaConsumer比KafkaProducer复杂,因为除了基本的发出请求、接收响应、网络IO,还引入了consumer group的概念(分布式消费),组成员的变动就引入了rebalance话题,还需要管理offset,防止丢失读取。这里每个都是话题。
Kafka主要分为以下几个组件:
Kafka主要组件