kafka 常用命令
本人接触kafka也有一段时间,记录一下常用的一些命令,便于工作中使用,只是简单整理了几个常用命令,欢迎大家继续补充1 启动kafka服务./bin/kafka-server-start.sh config/server.properties &2 手动创建topicsh kafka-topics.sh --create --zookeeper localhost:2181 --repli
·
本人接触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副本都成功写入数据,但是这种吞吐量最慢。
更多推荐
已为社区贡献4条内容
所有评论(0)