本人接触kafka也有一段时间,记录一下常用的一些命令,便于工作中使用,只是简单整理了几个常用命令,欢迎大家继续补充

1 启动kafka服务
./bin/kafka-server-start.sh config/server.properties &

2 手动创建topic
sh kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic 名称

3 向topic发送消息
sh kafka-console-producer.sh --broker-list localhost:9092 --topic 名称

4 展示topic列表
sh kafka-topics.sh --list --zookeeper localhost:2181

5 查看集群的相关状态
echo status | nc localhost 2181  
如果提示nc未安装,使用 yum install -y nc 进行安装

6 查看group下topic的消费情况
sh kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-consumer-group
在kafka 0.9版本以前也可以使用 sh kafka-consumer-offset-checker.sh --zookeeper hn21:2181,hn022:2181,hn023:2181 --topic hawkeye-app-content-v1 --group hawkeye-app-data-to-db-processor-v1  --broker-info 查看topic消费情况,0.9版本以后就推荐上面这种查看方式了
 

7 查看指定topic详细信息 具体解释如下
sh kafka-topics.sh --bootstrap-server localhost:9092 --describe  --topic Test
 PartitionCount:partition 个数。
 ReplicationFactor:副本个数。
 Partition:partition 编号,从 0 开始递增。
 Leader:当前 partition 起作用的 breaker.id。
 Replicas: 当前副本数据所在的 breaker.id,是一个列表,排在最前面的其作用。
 Isr:当前 kakfa 集群中可用的 breaker.id 列表。

8 修改指定topic的分区数量(注意 分区数量只能增加,不能减少,不信可以自己尝试一下,系统会扔出异常)
sh kafka-topics.sh --alter --zookeeper localhost:2181 --topic 主题名称 --partitions 分区数量

9 查看指定topic的分区信息
sh kafka-topics.sh --describe --zookeeper localhost:2181 --topic Test

讲解一下kafka中组(group)的理解

1 不同的组(group)是会重复消费topic的数据,但是只能消费group加入之后产生的新数据,老数据并不行
通过不同的group来重新消费数据方法简单,但我们无法指定我们要重复消费哪些数据,它会从这个groupid在zookeeper注册之后所产生的数据开始消费。这里需要注意的是新的group是重新消费所有数据,但也并非是topic中所有数据,它只会消费它在zookeeper注册过之后产生的数据
2 同一个组(group)里面,多个消费者(consumer)订阅同一个topic,但是只会有一个consumer(消费者)可以消费到数据,其他则无法消费数据。
讲解一下kafka的ack机制
kafak的ack机制,即producer发送消息的确认机制,会影响到吞吐量和安全可靠性,二者是矛盾的,需要吞吐量必然需要洗手安全可靠性,会有数据丢失的概率 、ack有三个值 1 ,0, -1
ack为1,producer发送消息成功,并且说明leader副本已经成功的将消息写入了kafak对应的topic中,但是其他副本可能暂未写入消息,若此时leader节点宕机,则会发生此数据丢失的情况。
ack为0,producer发送消息成功,不管后续操作是否成功。
ack为-1,producer发送消息成功,并且所有follow副本以及leader副本都成功写入数据,但是这种吞吐量最慢。

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐