kafka启动命令
./bin/kafka-server-start.sh(启动命令) -daemon(后台启动参数) config/server.properties (配置文件)
kafka语法
查看主题个数 命令 ./bin/kafka-topics.sh --list --zookeeper Hadoop01:2181
创建主题 命令 ./bin/kafka-topics.sh --create --zookeeper Hadoop01:2181 --topic first (topic 名称) --partitions 2 (分区个数) --replication-factor 2 (副本个数)
删除主题命令 ./bin/kafka-topics.sh --delete --zookeeper Hadoop01:2181 --topic first(topic 名称)
查看主题详情命令
./bin/kafka-topics.sh --describe --topic test(主题名称) --zookeeper Hadoop01:2181
创建主题 副本数不能大于分区数
生产者启动命令
./bin/kafka-console-producer.sh --topic test --broker-list Hadoop01:9092
消费者启动命令
./bin/kafka-console-consumer.sh --topic test --zookeeper Hadoop01:2181 --from-beginning
./bin/kafka-console-consumer.sh --topic test --bootstrap-server Hadoop01:9092 --from-beginning
最大消息保存时间7天
消费者在zookeeper中存的是偏移量
生产者
生产者分区
分区策略
分区原因 方便集群中扩展 每个partition 可以通过调整以适应他所在的机器,而一个topic 又可以有多个partition组成因此整个 集群就可以适应任意大小数据
可以提高并发因为是以partition 为单位读写了
ack机制
0 的时候 生产者发送数据到主题 不管主题有没有接收到数据之间ack状态
1的时候 生产者发送数据到主题 只要leader接收成功返回ack状态
-1 的时候 生产者 发送数据到主题 leader与follower都接收到数据才返回ack状态
上面两种容易造成数据丢失 -1 情况容易造成数据重复的现象
消费数据的一致性 高水位
HW 消费者可见的最大值 消费者消费的一致性
只能保证副本之间数据一致性的问题 不能保证数据的不丢失 或者不重复
LEO 每一个分区每一个副本的最大officeset
Exactly once 精准一次性
kafka 消费者
消费方式
consumer 使用pull(拉取) 模式 broker中读取数据
push(推)模式很难适用于消费者速率不同的消费者因为消息发送速率是有broker决定的
分区分配策略
同一个消费者组里面不同消费者不能同时消费同一个分区
roundrobin 轮询 按照最分 保证消费者组中消费者订阅的主题是同一个
range按照主题分
kafka入门基础命令
最新推荐文章于 2024-11-09 15:13:09 发布