本文对Kafka做个简单介绍(详细的介绍在后续文章中体现),着重介绍下Linux下Kafka环境的搭建(单机),后续会补充集群环境下的配置。
Kafka简介
Apache Kafka是分布式发布-订阅消息系统。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。
Apache Kafka与传统消息系统相比,有以下不同:
它被设计为一个分布式系统,易于向外扩展;
它同时为发布和订阅提供高吞吐量;
它支持多订阅者,当失败时能自动平衡消费者;
它将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序。
图片来自官网
安装JDK
Kafka需要依赖JAVA环境运行。
下载Kafka版本
本文下载的是kafka_2.10-0.10.1.1.tgz版本,可以使用wget下载,也可以自行下载。下载地址:http://kafka.apache.org/downloads
安装和配置
1、将包下载到相关的目录,然后解压Zookeeper到指定目录;
#cd /opt;
#tar -zxvf kafka_2.10-0.10.1.1.tgz;
2、配置日志:进入到/opt/kafka_2.10-0.10.1.1目录创建日志目录;
#cd /opt/kafka_2.10-0.10.1.1;
#mkdir logs;
3、修改kafka配置文件;
进入到/opt/kafka_2.10-0.10.1.1/config目录,修改server.properties。
#cd /opt/kafka_2.10-0.10.1.1/config;
#vi server.properties #编辑修改相应的参数
broker.id=0
port=9092 #端口号
host.name=127.0.0.1 #服务器IP地址,修改为自己的服务器IP
log.dirs=/opt/kafka_2.10-0.10.1.1/logs #日志存放路径,上面创建的目录
zookeeper.connect=localhost:2181 #zookeeper地址和端口,单机配置部署,localhost:2181
#:wq! #保存退出
4、启动Zookeeper:
Kafka支持内置的Zookeeper和引用外部的Zookeeper,本文使用外部的Zookeeper。
# bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
启动Zookeeper可以参考前面文章: Linux下Zookeeper的(单机)安装与简单测试。
5、Kafka操作。
(1)、启动kafka命令:
#cd /opt/kafka_2.10-0.10.1.1/bin;
# sudo ./kafka-server-start.sh /opt/kafka_2.10-0.10.1.1/config/server.properties &;
(2)、停止kafka命令:
#sudo ./kafka-server-stop.sh
(3)、创建Topic:(创建一个名为test的topic,只有一个副本,一个分区。)
#sudo ./kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic test
(4)、列出所有Topic:
#sudo ./kafka-topics.sh -list -zookeeper 127.0.0.1:2181
(5)、启动Producer并发送消息:
#sudo ./kafka-console-producer.sh --broker-list localhost:9092 --topic test
(输入相应的消息,eg:hello kafka;按Ctrl+C结束)
(6)、启动Consumer并接收消息:
#sudo ./kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test --from-beginning
(7)、开启kafka远程连接:
(8)、查看topic的数据:
./kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --from-beginning --topic test