Author:赵志乾
Date:2018-10-20
Declaration:All Right Reserved!!!
1、kafka系统的运行条件
首先,kafka服务端代码使用scala语言开发,其最终运行于JVM上,故需要安装JRE。其次,kafka的一些元数据由zookeeper来保存,并且由zookeeper来监控kafka代理服务器的在线情况,故需要安装zookeeper。
2、操作系统版本
本文中的相关操作均在Ubuntu系统上进行,其版本号:12.04.1 TLS。
注:可通过如下命令查看Ubuntu系统版本。
cat /etc/issue
效果如下图:
3、jdk、kafka、zookeeper版本
为了使用最新版本的kafka和zookeeper,需要选用jdk版本在1.8以上。
jdk版本为1.8.0_181,软件包下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
kafka版本为2.12-2.0,软件包下载地址:http://kafka.apache.org/downloads
zookeeper版本为3.5.4,软件包下载地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
4、jdk、kafka、zookeeper安装
jdk安装教程:https://www.linuxidc.com/Linux/2015-01/112030.htm
kafka和zookeeper的安装较为简单,将下载后的软件包解压到想安装的路径下即可完成安装。
5、 kafka和zookeeper配置
kafka配置:kafka可以采用默认配置,其配置文件为kafka_2.12-2.0.0/config/server.properties。其中主要关注两点:1)zookeeper.connect的值需要和zookeeper的配置相匹配,因为两者之间需要建立长连接通信;2)listeners的值,其包含服务端套接字对外暴漏的域名和端口,用于和生产者/消费者客户端进行通信,默认情况下其为localhost:9092。
zookeeper配置:zookeeper可以采用默认配置,但需要将zookeeper-3.5.4-beta/conf/目录下的zoo-sample.cfg改名为zoo.cfg,因为zookeeper不识别自带的那个文件。其中需要关注的有两点:1)dataDir的值用于设定数据存储目录,需要将其设定一个已存在的目录;2)clientPort的值用于zookeeper和kafka建立连接,其要求和kafka配置中zookeeper.connect端口值一致;
6、zookeeper、kafka启动
如下每一条命令行均需在各起一个终端来执行
1、启动zookeeper,在zookeeper的bin目录下执行
./zkServer.sh start
2、启动kafka服务端,在kafka的bin目录下执行
./kafka-server-start.sh ../config/server.properties
3、启动kafka生产者客户端,在kafka的bin目录下执行
./kafka-console-producer.sh --broker-list localhost:9092 --topic test
4、启动kafka消费者客户端,在kafka的bin目录下执行
./kafka-console-consumer.sh --bootstrap-server localhost:9090 --topic test --from-beginning
7、kafka测试
在kafka生产者客户端所在终端输入文本信息,按回车即可在消费者客户端所在终端看到应消费的消息。如下图所示: