定义:
是一个开源的分布式流数据平台,旨在提供高吞吐、高容错性以及水平可扩展的流数据解决方案
特点:
- 是消息发布订阅系统:将消息发布到Topic,再从Topic订阅;
- 持久性:将消息持久化到磁盘,即使消费者离线,仍可以获取之前的消息;
- 高吞吐:它使用分区(partitions)将Topic 的数据分布到各个服务器上,从而实现水平扩展;
- 水平可扩展:Kafka 集群可以很容易的扩展,通过增加节点来处理更多的数据;
- 容错性:当其中一些节点失败时,数据仍然可用。他通过在多个节点上复制分区的数据来实现容错;
- 实时数据流处理:Kafka不仅仅是消息队列,还支持实时数据流处理。他可以集成到流处理框架中,如flink ,以支持实时数据分析和处理
基本命令
1. 创建topic
/opt/tiger/kafka/bin/kafka-topics.sh --zookeeper $(sd config vpc.zookeeper)/kafka_vpc_lf --create --if-not-exists --replication-factor 2 --partitions 3 --topic $topic_name
创建生产者
#创建一个生产者
/opt/tiger/kafka/bin/kafka-console-producer.sh --broker-list $(sd config kafka_vpc) --topic dts_dump_test
#生产一条数据
{"id":773320,"name":"杨娟","address":"吉林省杭州市合川梧州路L座 934689","create_time":1653905861,"event_time":1653905561,"price":40343.9750680629,"list_info":["QeWHWDTPqOyjxivCdHFb","mAEgJHRZnojFWbueQiiR","AZWPwVMRyJKCJMXaEJhp","cbeTljzvygYcDrwdLKel","HFiEKQiFkEejdZQftpbE"],"map_info":{"也是":"aHzrLubeXUZLbwURNwmK","搜索":"MXhrcgUVOmNTqDjIHGTD","一些":"reiKveakVvTvNoesUjYE","女人":"ckoKoxJCrxniQIFAUiZu","之间":"DUXVsnqwtDrnxAcwFcZx"}}
2. 创建带Key的生产者
kafka-console-producer.sh --bootstrap-server $(sd config kafka_vpc) --topic test --producer.config config/producer.properties --property parse.key=true
3. 创建一个消费者
/opt/tiger/kafka/bin/kafka-console-consumer.sh --bootstrap-server $(sd config kafka_vpc) --topic pg_cdc_dump
4. 查看消费组列表
/opt/tiger/kafka/bin/kafka-consumer-groups.sh --bootstrap-server {broker_ip}:9192 --list
5. 查看 topic 列表
/opt/tiger/kafka/bin/kafka-topics.sh --zookeeper $(sd config vpc.zookeeper)/kafka_vpc_lf --list
6. 查看消费组详情(CURRENT-OFFSET,LAG 等)
/opt/tiger/kafka/bin/kafka-consumer-groups.sh --bootstrap-server $(sd config kafka_vpc) --group {group_name} --describe
7. 查看topic详情
/opt/tiger/kafka/bin/kafka-topics.sh --zookeeper $(sd config vpc.zookeeper)/kafka_vpc_lf --describe --topic ${topic_name}
8. 修改partition数量(只能增加不能减少)
/opt/tiger/kafka/bin/kafka-topics.sh --alter --topic {topic_name} --zookeeper localhost/kafka_vpc_lf --partitions {partition_number}
9. 查看__consumer_offset
./kafka-console-consumer.sh --topic __consumer_offsets --bootstrap-server localhost:9192 --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter" --consumer.config ../config/consumer.properties --partition 3
10. 调整Kafka日志保留时长
/opt/tiger/kafka/bin/kafka-configs.sh --zookeeper $(sd config vpc.zookeeper)/kafka_vpc_lf --alter --entity-name ch_event --entity-type topics --add-config retention.ms=86400000
11. 移除Kafka topic级别配置
/opt/tiger/kafka/bin/kafka-configs.sh --zookeeper localhost:2181/kafka_vpc_lf --alter --entity-name ch_event --entity-type topics --delete-config retention.ms
12. 修改消费进度
/opt/tiger/kafka/bin/kafka-consumer-groups --bootstrap-server $(sd config kafka_vpc) --group profileGroup --reset-offsets --topic profile_transition --to-offset 44712624463 --execute
13. 修改消费进度(指定分区)
/opt/tiger/kafka/bin/kafka-consumer-groups --bootstrap-server $(sd config kafka_vpc) --group profileGroup --reset-offsets --topic profile_transition:0 --to-offset 44712624463 --execute
14. 查看条数
./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --bootstrap-server $(sd config kafka_vpc) --topic dts_test --time -1 --offsets 1 | awk -F ":" '{sum += $3} END {print sum}'
15. 查看offset
./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list BORKER_HOST1:PORT1,BORKER_HSOT2:PORT2 --topic TOPIC_NAME --time -1
16. 查询当前机器的kafka 部署机器IP
sd config vpc.zookeeper