kafka命令行操作

1 查看kafka版本

# 集群中kafka版本为2.0.1

# 查询kafka版本
# ./kafka-run-class.sh --version
2.0.0 (Commit:3402a8361b734732)

2 topic

<---topic--->
#查看topics
# 版本原因无法使用--bootstrap-server,这里使用--zookeeper
./kafka-topics.sh --zookeeper 192.168.8.58:2181 --list


# 创建topic
# ./kafka-topics.sh --zookeeper 192.168.8.58:2181 --topic first --create --partitions 1 --replication-factor 3
Created topic "first".

# 查看topic 详细信息
# ./kafka-topics.sh --zookeeper 192.168.8.58:2181 --topic first --describe
Topic:first     PartitionCount:1        ReplicationFactor:3     Configs:
        Topic: first    Partition: 0    Leader: 0       Replicas: 0,1,2 Isr: 0,1,2
#PartitionCount:分区数
ReplicationFactor:副本数
Partition:分区为1
Leader:副本的Leader为副本0,生产者和消费者针对副本0进行操作
Replicas: 副本设置3个,所以这里是副本0,1,2

#修改topic,注意partitions只能增加不能减少,不能通过命令行的形式修改副本--replication-factor
#  ./kafka-topics.sh --zookeeper 192.168.8.58:2181 --topic first --alter --partitions 3
WARNING: If partitions are increased for a topic that has a key, the partition logic or ordering of the messages will be affected
Adding partitions succeeded!

#修改topic,再次查看topic详细信息
# ./kafka-topics.sh --zookeeper 172.25.112.1:2181 --topic first --describe
Topic:first     PartitionCount:3        ReplicationFactor:3     Configs:
        Topic: first    Partition: 0    Leader: 0       Replicas: 0,1,2 Isr: 0,1,2
        Topic: first    Partition: 1    Leader: 1       Replicas: 1,2,0 Isr: 1,2,0
        Topic: first    Partition: 2    Leader: 2       Replicas: 2,0,1 Isr: 2,0,1

3 kafka-console-producer


<---kafka-console-producer--->
# 无指定消费组id
./kafka-console-producer.sh --broker-list 192.168.8.58:9092 --topic first
>

# 指定消费组id
./kafka-console-producer.sh --broker-list 192.168.8.58:9092 --topic first --group wuqirui

4 kafka-console-consumer


<---kafka-console-consumer--->
# 当前消息
./kafka-console-consumer.sh --bootstrap-server 192.168.8.58:31092 --topic first

# 历史消息
./kafka-console-consumer.sh --bootstrap-server 192.168.8.58:9092 --topic first --from-beginning

# 查看消费组详细信息
./kafka-console-consumer.sh --bootstrap-server 192.168.8.58:9092 --describe --group first

5. 查看kafka index和log信息

# ./kafka-run-class.sh kafka.tools.DumpLogSegments --files /tmp/kafka-logs/first-0/00000000000000000000.log
Dumping /tmp/kafka-logs/first-0/00000000000000000000.log
Starting offset: 0
baseOffset: 0 lastOffset: 4 count: 5 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 0 isTransactional: false position: 0 CreateTime: 1709443733976 isvalid: true size: 136 magic: 2 compresscodec: NONE crc: 3174946126
baseOffset: 5 lastOffset: 9 count: 5 baseSequence: 0 lastSequence: 4 producerId: 6000 producerEpoch: 0 partitionLeaderEpoch: 0 isTransactional: true position: 136 CreateTime: 1709448807614 isvalid: true size: 161 magic: 2 compresscodec: NONE crc: 3671548032


# ./kafka-run-class.sh kafka.tools.DumpLogSegments --files /tmp/kafka-logs/first-0/00000000000000000000.index
Dumping /tmp/kafka-logs/first-0/00000000000000000000.index
offset: 0 position: 0

1/kafka是一个分布式的消息缓存系统 2/kafka集群中的服务器都叫做broker 3/kafka有两类客户端,一类叫producer(消息生产者),一类叫做consumer(消息消费者),客户端和broker服务器之间采用tcp协议连接 4/kafka中不同业务系统的消息可以通过topic进行区分,而且每一个消息topic都会被分区,以分担消息读写的负载 5/每一个分区都可以有多个副本,以防止数据的丢失 6/某一个分区中的数据如果需要更新,都必须通过该分区所有副本中的leader来更新 7/消费者可以分组,比如有两个消费者组A和B,共同消费一个topic:order_info,A和B所消费的消息不会重复 比如 order_info 中有100个消息,每个消息有一个id,编号从0-99,那么,如果A组消费0-49号,B组就消费50-99号 8/消费者在具体消费某个topic中的消息时,可以指定起始偏移量 每个partition只能同一个group中的同一个consumer消费,但多个Consumer Group可同时消费同一个partition。 n个topic可以被n个Consumer Group消费,每个Consumer Group有多个Consumer消费同一个topic Topic在逻辑上可以被认为是一个queue,每条消费都必须指定它的Topic,可以简单理解为必须指明把这条消息放进哪个queue里。为了使得Kafka的吞吐率可以线性提高,物理上把Topic分成一个或多个Partition,每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件。若创建topic1和topic2两个topic,且分别有13个和19个分区 Kafka的设计理念之一就是同时提供离线处理和实时处理。根据这一特性,可以使用Storm这种实时流处理系统对消息进行实时在线处理,同时使用Hadoop这种批处理系统进行离线处理,还可以同时将数据实时备份到另一个数据中心,只需要保证这三个操作所使用的Consumer属于不同的Consumer Group即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值