本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
kafka基本使⽤
1.安装前的环境准备
jdk 安装zk 官⽹下载kafka的压缩包:kafka.apache.org/downloads
解压缩⾄如下路径
/usr/local/kafka/
修改配置⽂件:/usr/local/kafka/kafka2.11-2.4/config/server.properties
#broker.id属性在kafka集群中必须要是唯⼀
broker.id=0
#kafka部署的机器ip和提供服务的端⼝号
listeners=PLAINTEXT://192.168.65.60:9092
#kafka的消息存储⽂件
log.dir=/usr/local/data/kafka-logs
#kafka连接zookeeper的地址
zookeeper.connect=192.168.65.60:2181
2.启动kafka服务器 进⼊到bin⽬录下。使⽤命令来启动
./kafka-server-start.sh -daemon ../config/server.properties
验证是否启动成功: 进⼊到zk中的节点看id是0的broker有没有存在(上线)
ls /brokers/ids/
创建主题topic topic
topic可以实现消息的分类,不同消费者订阅不同的topic。
执⾏以下命令创建名为“test”的topic,这个topic只有⼀个partition,并且备份因⼦也设置为 1:
/kafka-topics.sh --create --zookeeper 172.16.253.35:2181 --replicationfactor 1 --partitions 1 --topic test
查看当前kafka内有哪些topic
./kafka-topics.sh --list --zookeeper 172.16.253.35:2181
发送消息 kafka⾃带了⼀个producer命令客户端,可以从本地⽂件中读取内容,或者我们也可以以命令 ⾏中直接输⼊内容,并将这些内容以消息的形式发送到kafka集群中。在默认情况下,每⼀个 ⾏会被当做成⼀个独⽴的消息。使⽤kafka的发送消息的客户端,指定发送到的kafka服务器 地址和topic
./kafka-console-producer.sh --broker-list 172.16.253.38:9092 --topic test
消费消息 对于consumer,kafka同样也携带了⼀个命令⾏客户端,会将获取到内容在命令中进⾏输 出,默认是消费最新的消息。使⽤kafka的消费者消息的客户端,从指定kafka服务器的指定 topic中消费消息
⽅式⼀:从最后⼀条消息的偏移量+1开始消费
./kafka-console-consumer.sh --bootstrap-server 172.16.253.38:9092 -- topic test
⽅式⼆:
从头开始消费 ./kafka-console-consumer.sh --bootstrap-server 172.16.253.38:9092 -- from-beginning --topic test
⼏个注意点:
消息会被存储
消息是顺序存储
消息是有偏移量的
消费时可以指明偏移量进⾏消费