赵志浩
Published on 2020-12-02 / 15 Visits
0
0

kafka 消费者 3

./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

原创声明:作者:赵志浩、个人博客地址:https://zhaozhihao.com

原创声明:笔名:陈咬金、 博客园地址:https://www.cnblogs.com/zh94/


Comment