# kafka **Repository Path**: yintingting/kafka ## Basic Information - **Project Name**: kafka - **Description**: kafka示例 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-07-22 - **Last Updated**: 2021-10-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1.搭建集群:https://kafka.apache.org/quickstart 先启动producer,后启动consumer时,发现consumer从当前接收到的消息开始消费, 那怎样使它从1开始消费呢? 解决 :properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,"earliest"); 2. 异步发送消息 3. 修改consumer的groupId properties.put(ConsumerConfig.GROUP_ID_CONFIG,"KafkaConsumerDemo1"); 发现consumer会把之前生产者发送过的所有消息都再消费一遍 ```message receive : woowo message receive : 你不是真正的快乐 message receive : message_0 message receive : message_1 message receive : message_2 message receive : message_3 message receive : message_4 message receive : message_5 message receive : message_6 message receive : message_7 message receive : message_8 message receive : message_9 message receive : message_10 message receive : message_11 message receive : message_12 message receive : message_13 message receive : message_14 message receive : message_15 message receive : message_16 message receive : message_17 message receive : message_18 message receive : message_19 message receive : message_20 message receive : message_21 message receive : message_22 message receive : message_23 message receive : message_24 message receive : message_25 message receive : message_26 message receive : message_27 message receive : message_28 message receive : message_29 message receive : message_30 message receive : message_31 message receive : message_32 message receive : message_33 message receive : message_34 message receive : message_35 message receive : message_36 message receive : message_37 message receive : message_38 message receive : message_39 message receive : message_40 message receive : message_41 message receive : message_42 message receive : message_43 message receive : message_44 message receive : message_45 message receive : message_46 message receive : message_47 message receive : message_48 message receive : message_49 message receive : message_0 message receive : message_1 message receive : message_2 message receive : message_3 message receive : message_4 message receive : message_5 message receive : message_6 message receive : message_7 message receive : message_8 message receive : message_9 message receive : message_10 message receive : message_11 message receive : message_12 message receive : message_13 message receive : message_14 message receive : message_15 message receive : message_16 message receive : message_17 message receive : message_18 message receive : message_19 message receive : message_20 message receive : message_21 message receive : message_22 message receive : message_23 message receive : message_24 message receive : message_0 message receive : message_1 message receive : message_2 message receive : message_3 message receive : message_4 message receive : message_5 message receive : message_6 message receive : message_7 message receive : message_8 message receive : message_9 message receive : message_10 message receive : message_11 message receive : message_12 message receive : message_13 message receive : message_14 message receive : message_15 message receive : message_16 message receive : message_17 message receive : message_18 message receive : message_19 message receive : message_20 message receive : message_21 message receive : message_22 message receive : message_23 message receive : message_24 message receive : message_25 message receive : message_26 message receive : message_27 message receive : message_28 message receive : message_29 message receive : message_30 message receive : message_31 message receive : message_32 message receive : message_33 message receive : message_34 message receive : message_35 message receive : message_36 message receive : message_37 message receive : message_38 message receive : message_39 message receive : message_40 message receive : message_41 message receive : message_42 message receive : message_43 message receive : message_44 message receive : message_45 message receive : message_46 message receive : message_47 message receive : message_48 message receive : message_49 ``` 4. properties.put(ConsumerConfig.GROUP_ID_CONFIG,"KafkaConsumerDemo2"); properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,"latest"); 发现consumer没有消费任何消息 > earliest对于新的groupId,重置offset > latest对于新的groupId,直接取已经消费并且提交的最大的offset 5. 手动确认 properties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,"false"); 如果不手动提交,那么重启consumer还是会消费到消息 6.自定义partition 执行命令:bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 3 --topic topic2 创建topic2并分成3个分区012 观察producer发出的msg在哪个分区,consumer接收到的msg也在哪个分区 7. consumer指定某个partition接收消息 例子中consumer只能接收到0 partition的msg 8. 多个消费者如何消费 topic2创建了三个分区,启动三个consumer,发现一个consumer接收一个分区的消息