Kafka三大名词
- 话题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名。
- 生产者(Producer):是能够发布消息到话题的任何对象。已发布的消息保存在一组服务器中,它们被称为代理(Broker)或Kafka集群。
- 消费者:可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息
Kafka安装
[root@ linux-node1 ~]# cd /usr/local/src
[root@ linux-node1 src]# wget http://www-eu.apache.org/dist/kafka/0.9.0.1/kafka_2.11-0.9.0.1.tgz
[root@hadoop-node1 src]# tar zxf kafka_2.11-0.9.0.1.tgz
[root@hadoop-node1 src]# mv kafka_2.11-0.9.0.1 /usr/local/
[root@hadoop-node1 src]# ln -s /usr/local/kafka_2.11-0.9.0.1/ /usr/local/kafka
Kafka配置:设置Zookeeper地址
[root@hadoop-node1 ~]# vim /usr/local/kafka/config/server.properties
zookeeper.connect=192.168.56.11:2181,192.168.56.12:2181,192.168.56.13:2181
Kafka启动
[root@hadoop-node1 kafka]# ./bin/kafka-server-start.sh ./config/server.properties
Kafka测试
创建一个topic名称为test,设置一个分区和一个备份
[root@hadoop-node1 ~]# cd /usr/local/kafka/bin/
[root@hadoop-node1 bin]# ./kafka-topics.sh --create --zookeeper 192.168.56.11:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".
查看已经存在的topic
[root@hadoop-node1 bin]# ./kafka-topics.sh --list --zookeeper 192.168.56.11:2181
test
发送消息
Kafka提供了一个命令行的工具,可以从输入文件或者命令行中读取消息并发送给Kafka集群。每一行是一条消息。
[root@hadoop-node1 bin]# ./kafka-console-producer.sh --broker-list 192.168.56.11:9092 --topic test
This is a message
This is another message
消费消息
Kafka也提供了一个消费消息的命令行工具。
[root@hadoop-node1 bin]# ./kafka-console-consumer.sh --zookeeper 192.168.99.97:2181 --topic test --from-beginning
This is a message
This is another message
好的。只要你不Ctrl+C关闭这个经常,现在你可以尝试不停的在发送消息的终端输入内容,你就会在消费消息的终端输出内容。