Kafka 是一种高吞吐的分布式发布订阅消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区、多副本、冗余,因此被广泛用于大规模消息数据处理应用
Kafka 支持Java 及多种其它语言客户端,可与Hadoop、Storm、Spark等其它大数据工具结合使用。
本教程主要介绍Kafka 在Centos 7上的安装和使用,包括功能验证和集群的简单配置。
安装JDK
Kafka 使用Zookeeper 来保存相关配置信息,Kafka及Zookeeper 依赖Java 运行环境,从oracle网站下载JDK 安装包,解压安装:
?
1 2$tar zxvf jdk-8u65-linux-x64.tar.gz
$mv jdk1.8.0_65 java
设置Java 环境变量:
?
1 2 3JAVA_HOME=/opt/java
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH
也可以选择yum install安装,相应设置环境变量。
安装Kafka
从官网下载Kafka 安装包,解压安装: 官网地址:http://kafka.apache.org/downloads.html
?
1 2 3tar zxvf kafka_2.11-0.8.2.2.tgz
mv kafka_2.11-0.8.2.2 kafka
cd kafka
功能验证
1.启动Zookeeper 使用安装包中的脚本启动单节点Zookeeper 实例:
?
1bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
2.启动Kafka 服务 使用kafka-server-start.sh 启动kafka 服务:
?
1bin/kafka-server-start.sh config/server.properties
3.创建topic 使用kafka-topics.sh 创建单分区单副本的topic test:
?
1bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看topic:
?
1 2bin/kafka-topics.sh --list --zookeeper localhost:2181
test
4.产生消息 使用kafka-console-producer.sh 发送消息:
?
1 2bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
Hello world!
5.消费消息 使用kafka-console-consumer.sh 接收消息并在终端打印:
?
1bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
producer产生的消息和consumer消费的消息是同步的。