赞
踩
目录
名称 |
解释
|
Broker
|
消息中间件处理节点,一个
Kafka
节点就是一个
broker
,一个或者多个Broker可以组成一个
Kafka
集群
|
Topic
|
Kafka
根据
topic
对消息进⾏归类,发布到
Kafka
集群的每条消息都需要指定 一个topic
|
Producer
|
消息生产者,向
Broker
发送消息的客户端
|
Consumer
|
消息消费者,从
Broker
读取消息的客户端
|
- cd /opt/kafka_2.13-2.8.1/bin
- #创建test主题
- ./kafka-topics.sh --create --zookeeper 192.168.99.100:2181 --replication-factor 1 --partitions 1 --topic test
./kafka-topics.sh --list --zookeeper 192.168.99.100:2181
注意指令中的ip和端口都是zookeeper的
./kafka-console-producer.sh --broker-list 192.168.99.100:9092 --topic test
就是只能接受到连接之后,发送方发送的消息,连接之前的消息,接受不到
./kafka-console-consumer.sh --bootstrap-server 192.168.99.100:9092 --topic test
可以发现连接之前的消息没有收到
./kafka-console-consumer.sh --bootstrap-server 192.168.99.100:9092 --from-beginning --topic test
具体的日志目录在service.properies中配置
在日志文件目录中可以查看到topic的信息,索引,时间等信息
./kafka-console-consumer.sh --bootstrap-server 192.168.99.100:9092 --consumer-property group.id=testGroup --topic test
不同的消费组订阅同一个topic,那么每个消费组中只有个一个消费者能收到消息。
- ./kafka-console-consumer.sh --bootstrap-server 192.168.99.100:9092 --consumer-property group.id=testGroup1 --topic test
- ./kafka-console-consumer.sh --bootstrap-server 192.168.99.100:9092 --consumer-property group.id=testGroup2 --topic test
- # 查看当前主题下有哪些消费组
- ./kafka-consumer-groups.sh --bootstrap-server 192.168.99.100:9092 --list
-
- # 查看消费组中的具体信息:比如当前偏移量、最后⼀条消息的偏移量、堆积的消息数量
- ./kafka-consumer-groups.sh --bootstrap-server 192.168.99.100:9092 --describe --group testGroup
./kafka-topics.sh --create --zookeeper 192.168.99.100:2181 --replication-factor 1 --partitions 2 --topic test1
通过--partitions 参数设置分区个数,来表示用多少个分区存储这个topic的消息
./kafka-topics.sh --describe --zookeeper 192.168.99.100:2181 --topic test1
./kafka-topics.sh --create --zookeeper 192.168.99.100:2181 --replication-factor 3 --partitions 2 --topic my-replicated-topic
--replication-factor表示副本数,只有broker的数量>副本数,才有意义
- # 查看topic情况
- ./kafka-topics.sh --describe --zookeeper 192.168.99.100:2181 --topic myreplicated-topic
./kafka-console-producer.sh --broker-list 172.16.253.38:9092,172.16.253.38:9093,172.16.253.38:9094 --topic my-replicated-topic
./kafka-console-consumer.sh --bootstrap-server 172.16.253.38:9092,172.16.253.38:9093,172.16.253.38:9094 --from-beginning --topic my-replicated-topic
./kafka-console-consumer.sh --bootstrap-server 172.16.253.38:9092,172.16.253.38:9093,172.16.253.38:9094 --from-beginning --consumer-property group.id=testGroup1 --topic my-replicated-topic
Kafka集群中broker在zookeeper中创建临时序号节点,序号最小的节点(最先创建的节点)将作为集群中的controller,负责管理整个集群中的所有分区和副本的状态:
前提:消费组的消费者没有指定分区来消费
触发条件:当消费组中的消费者和分区发生变化的时候
分区分配的策略:在rebalance之前,分区怎么分配会有以下3中策略
range:根据公示计算得到每个消费者消费哪几个分区:剩余分区总数 / 消费者数量 +1
轮询 :每个消费者轮询所有分区
sticky:粘合策略,如果需要rebalance,会在之前的已分配的基础上调整,不会改变之前的分配状况。如果这个策略没有打开,那么就要进行全部的重新分配,建议开启。
LEO是某个副本最后消息的位置,每一个部分都有自己的LEO
HW是已完成同步的位置,消息在写入broker时,且每个broker完成这条消息的同步后(更新了最新消息的LEO),HW才会变化。在这之前消费者是消费不到这条消息的,在同步完成以后,HW在更新,更新完成消费者才能消费到这条消息,这样的目的是防止消息的丢失(当leader所在的broker失效后,该消息仍然可以从新的选举的leader中获取到)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。