1、kafka的安装部署
因为我这边只有一个阿里云服务器,且配置贼低,所以我就不部署集群,直接部署一个单机版的测试玩玩
1)新建soft文件夹,并将kafka的jar上传到该文件夹下
2)解压压缩包,并将解压后的文件名改为 kafka
tar -zxvf kafka_2.11-0.11.0.0.tgz mv kafka_2.11-0.11.0.0 kafka
3)在kafka文件下创建log文件夹
4)备份并修改kafka的配置文件server.properties
cp server.properties server.properties.back vim server.properties
修改内容参考如下:
本地做的修改主要是:
broker.id=0 delete.topic.enable=true log.dirs=/soft/kafka/logs zookeeper.connect=121.40.182.123:2181
5)启动 kafka
bin/kafka-server-start.sh -daemon config/server.properties
6)查看kafka是否正常启动
jps
2、kafka的命令行操作
1)查看当前kafka服务器中的所有Topic
bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --list
2)创建topic
选项说明:
--topic 定义 topic 名
--replication-factor 定义副本数 (副本数不能超过 broker的数量)
--partitions 定义分区数
bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --create --topic first --replication-factor 1 --partitions 1
查看上述配置的logs文件夹,发现多了个first-0文件夹(主题+分区号)
===》 kafka的消息是存储到磁盘的
3)删除topic
bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --delete --topic first
4)查看topic的详情
bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --descripe --topic first
5)修改分区数
bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --alter --topic first --partitions 6
6)发送消息
bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic first
7)消费消息
bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic first
上面这种消费方式,当生产者发送消息时,消费者不在线,然后消费者启动后,消费不到生产者刚刚发送的消息
--from-beginning:会将主题中以往的所有数据都消费到
bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --from-beginning --topic first