kafka命令
后台启动kafka
bin/kafka-server-start -daemon config/server.properties
查看所有topics
bin/kafka-topics.sh --list --zookeeper localhost:2181
查看单个topic详情
bin/kafka-topics.sh --describe --topic info --zookeeper localhost:2181
消费topic
bin/kafka-console-consumer.sh --topic user_behavior --bootstrap-server localhost:9092 --from-beginning --max-messages 10
创建topic
bin/kafka-topics.sh --zookeeper localhost:2181 --create --replication-factor 1 --partitions 1 --topic t
删除topic
bin/kafka-topics.sh --zookeeper localhost:2181 \
--delete --topic first
发送消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic info
单独对某一个topic设置过期时间
./kafka-config.sh --zookeeper localhost:2181 --alter --entity-name topicname --entity-type topics --add-config retention.ms=86400000
#retention.ms=86400000为一天,单位是毫秒
查看设置
$ ./kafka-configs.sh --zookeeper localhost:2181 --describe --entity-name mytopic --entity-type topics
Configs for topics:wordcounttopic are retention.ms=86400000
立即删除某个topic下的数据
./kafka-topics.sh --zookeeper localhost:2181 --alter --topic topicname cleanup.policy=delete#kafka默认数据保留时间,可以修改
log.retention.hours=168
#超过这个时间数据会删除,再次消费的时候没有数据,现象是控制台阻塞#设置topic物理删除
delete.topic.enable=true#日志刷写条数
log.flush.interval.messages=10000
#日志刷写间隔时间
log.flush.interval.ms=1000
kafka的性能和数据大小无关,所以长时间存储数据没问题
kafka数据读写速度快,在于分区内数据是顺序读写
分区策略是利用分布式的特性,通过并行读写提高速度
副本机制保证集群中的某个节点发生故障时,该节点的partition数据不丢失,
且kafka仍然能够继续工作
以副本机制为前提,基于zookeeper选举机制,可以实现高可用