在近期的java开发中发现消息请求总是处理的不太妥当,尤其是当很多用户同时请求时候,系统的反应就显得不太灵敏,于是就想到了kafka这种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。由于没有专用的服务器,所以就在windows平台上搭建了一个简单的kafka测试环境,可以满足使用日常。
一、安装JDK
作为一名java开发者,jdk的安装和使用就像是家常便饭一般,本着设计模式中的复用原则,所以笔者在此就不在赘述,如果有是在不会的可以自行查找资料。
二、安装Zookeeper
首先到官网下载安装包,解压到任意一个目录即可。这里笔者的目录为:“D:\java\zookeeper\zookeeper-3.4.8”(也称为工作目录)
1、进入工作目录,在 conf 目录下面将“zoo_sample.cfg”重命名为“zoo.cfg”
2、打开zoo.cfg ,将dataDIr设置为自己喜欢的目录(dataDir=D:\\java\\zookeeper\\zookeeper-3.4.8\\tmp)可以是任意的
3、配置系统环境变量
(1)新建系统环境变量ZOOKEEPER_HOME,设置为"D:\java\zookeeper\zookeeper-3.4.8\conf"
(2)在path变量中添加“ZOOKEEPER_HOME%\bin;”,一定要注意最前面有没有分号,如果没有的话需要自己添加。
4、打开dos窗口,输入zkserver开启服务,如下图所示表示开启成功。
三、Kafka的安装和使用
首先需要从官网下载kafka安装包,要求是二进制版本的(具体原因笔者也没有搞清楚),工作目录是“D:\java\kafka\kafka_2.11-0.10.0.1”
1、进入目录“D:\java\kafka\kafka_2.11-0.10.0.1\config”,修改server.properties文件,将log.dirs改为任意目录
2、笔者这里是在本地测试使用,所以zookeeper.connect=localhost:2181默认在本地运行。
3、另外打开一个doc窗口(前面的窗口不要关闭),切换到工总目录,使用命令“.\bin\windows\kafka-server-start.bat .\config\server.properties”开启服务(如下图所示表示开启成功)。
四、简单测试(注意以下操作均是在上文中所提的工作目录中进行)
1、新建主题(topic)---sky
使用命令“.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic sky”新建主题。
2、新建生产者(producer)
红色箭头部分是主题名(笔者的就是sky),然后回车,等待消费者的建立。
3、创建消费者(consumer)
红色箭头部分是主题名(笔者的就是sky),然后回车,等待消费者发送消息。
4、通信
在生产者窗口输入消息,然后回车,消费者就会自动的获得生产者提供的消息。(左图是生产者,右图是消费者)
消息消费之前
消息消费之后