./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic arnold_consumer_test_1
./kafka-topics.sh --describe --zookeeper 10.0.3.17:2181 --topic arnold_consumer_test
./kafka-console-producer.sh --broker-list 10.0.3.17:9092 --topic arnold_consumer_test
bin/kafka-console-consumer.sh --bootstrap-server 10.0.3.17:9092,10.0.6.39:9092 --from-beginning --topic arnold_consumer_test --consumer.config config/consumer.properties
查看所有消费组的信息
./kafka-consumer-groups.sh --bootstrap-server 10.0.3.17:9092 --list
查看指定消费组的信息(查看消费组下消费者偏移量信息,)
./kafka-consumer-groups.sh --bootstrap-server 10.0.3.17:9092 --describe --group test-consumer-group-arnold-1
[root@dev bin]# ./kafka-consumer-groups.sh --bootstrap-server 10.0.3.17:9092 --describe --group test-consumer-group-arnold-1
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
arnold_consumer_test 0 17 17 0 consumer-1-1df6a5ac-ea01-4c3c-9b9c-d3c62b4fd923 /10.0.6.39 consumer-1
arnold_consumer_test 1 17 17 0 consumer-1-e3389e57-0445-4314-9845-c578284b0e7c /10.0.3.17 consumer-1
offset表示消费进度,,LAG表示落后的数据量新建topic分区最低指定副本为1,即主副本master
topic 3个分区的情况,启动一个消费者组且只有一个消费者,则该消费者消费topic的3个分区;
topic 3个分区的情况,启动一个消费者组且只有两个消费者c1,c2,则将会有一个消费者负责消费两个分区,另外一个消费者负责消费一个分区;
topic 3个分区的情况,启动一个消费者组且有三个消费者c1,c2,c3,则正常对应分区消费,一个消费者对应一个partition分区
topic 3个分区的情况,启动一个消费者组且有四个消费者c1,c2,c3,c4,则一般情况下没有人这样做。。。太愚蠢了。。。所以我也就没做这个测试,但是按照kafka的规则来看,会有第四个消费者消费不到对应的分区,也就是不会消费到任何数据。。
此时如果一个消费组已经在消费的情况下,此时又来了新的消费组进行消费,那就重新消费即可,按照新的消费组规则来消费即可, 不会影响到其他消费组;举例,此时一个消费组三个消费者,在进行数据的消费;此时新来了一个消费组,只有一个消费者,那么此时这个消费者会消费所有的消费分区,不会和其他的消费组有任何的重叠,原理是,kafka的消费组其实在kafka中也是一个消费者topic分区的概念,分区中记录各个消费组的消费的offset位移信息,以此保证所有的消费者互不影响关于这个概念后续会详细说明一下,其实挺重要的。
kafka中partition和消费者对应关系(已经有人做了详细测试,可以参考)
https://www.cnblogs.com/sa-dan/p/8080197.html
创建Topic
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic arnold_test_many
生产者
./kafka-console-producer.sh --broker-list 10.0.3.17:9092 --topic arnold_test_many
消费者
./kafka-console-consumer.sh --bootstrap-server 10.0.3.17:9092 --from-beginning --topic arnold_test_many
查看Topic详细信息(包含节点的分布情况)
./kafka-topics.sh --describe --zookeeper 10.0.3.17:2181 --topic arnold_test_many_three
分区自平衡
./kafka-preferred-replica-election.sh --zookeeper 10.0.3.17:2181
生产者数据发送时如果出现异常,是代码中自己写捕获异常,有问题重新发送,还是生产者api已经封装过的代码,只要发送结果异常了,
就直接重新发送?如果是自己捕获异常,则可以,获取异常后,直接做下回滚操作也可以?
【kafka原理】 消费者偏移量__consumer_offsets_相关解析
https://blog.csdn.net/u010634066/article/details/109306637
https://www.cnblogs.com/threecha/p/13737421.html
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic arnold_consumer_test
kafka ConsumerConfig 配置
https://www.cnblogs.com/gexiaoshan/p/9855276.html
Kafka常用命令之kafka-console-consumer.sh
https://blog.csdn.net/qq_29116427/article/details/80206125