Kafka入门到实战
Kafka常见操作
官网地址
声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准
https://kafka.apache.org/
Kafka概述
Apache Kafka 是一个开源的分布式事件流平台,提供高性能数据管道、流分析、 数据集成和任务关键型应用程序。
Kafka的基础操作
本节将在Kafka集群上执行。所有工具都可以在Kafka发行版的bin/目录下使用,如果在没有参数的情况下运行,每个工具都会打印所有可能的命令行选项的详细信息。
- 添加和删除主题 创建一个名为 my_topic_name的主题, 分区为10, 副本数为2(上次搭建的集群只有两个broker), 保留时间是1天
bin/kafka-topics.sh --bootstrap-server localhost:9092 --create--topic my_topic_name \--partitions10 --replication-factor 2--configretention.ms=86400000
- 查看分区是否正常创建 ls /tmp/kraft-combined-logs/
- 删除主题, 可以看到分区被逻辑删除啦,
bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete--topic my_topic_name
- 修改主题, 只需要把delete 改为alert即可
- 优雅地关闭, 以下内容直接参考官网, 未在本机上测试- 关闭生产者- 关闭消费者- 添加controlled.shutdown.enable=true- bin/kafka-server-stop.sh
- 设置具有优先的领导权, 用于一个服务实例宕机启动
auto.leader.rebalance.enable=true
- 跨机架平衡复制副本, 实现Kafka故障转移和容灾备份
broker.rack=my-rack-id
- 查看消费者的位置
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe--group my-group
- 管理消费者组
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
- 列出消费者组详细信息
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe--group my-group
- 还可以加一些参数- –members 提供使用者组中所有活动成员的列表- –members --verbose 还提供分配给每个成员的分区- –offsets 默认的description选项,提供与“–description”选项相同的输出- –state 提供有用的组级别信息- –delete 删除一个或多个消费者组 - 扩展集群
- 下线服务实例
- 增加复制因子
- 限制数据迁移期间的带宽使用
- 配置额度- 自定义额度对于 (user=user1, client-id=clientA)
bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type users --entity-name user1 --entity-type clients --entity-name clientA
- 自定义额度对于 user=user1bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type users --entity-name user1
- 自定义额度对于 client-id=clientAbin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type clients --entity-name clientA
- 为user=userA配置默认客户端id配额bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type users --entity-name user1 --entity-type clients --entity-default
- 配置默认配额对于userbin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type users --entity-default
- 配置默认配额对于client-idbin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048,request_percentage=200' --entity-type clients --entity-default
- 查询分配的配额 (user, client-id)bin/kafka-configs.sh --bootstrap-server localhost:9092 --describe --entity-type users --entity-name user1 --entity-type clients --entity-name clientA
- 查询分配的配额 (user)bin/kafka-configs.sh --bootstrap-server localhost:9092 --describe --entity-type users --entity-name user1
- 查询分配的配额 (client-id)bin/kafka-configs.sh --bootstrap-server localhost:9092 --describe --entity-type clients --entity-name clientA
- 查询分配的配额 (所有user)bin/kafka-configs.sh --bootstrap-server localhost:9092 --describe --entity-type users
- 查询分配的配额 (所有user, client-id)bin/kafka-configs.sh --bootstrap-server localhost:9092 --describe --entity-type users --entity-type clients
更新计划
下一部分是Kafka实战的代码部分, 敬请期待…
版权归原作者 笑三年-Dylen 所有, 如有侵权,请联系我们删除。