1.前提条件
1.1 环境需要配置jdk;
1.2 kafka版本0.8.1.1
2. 安装Zookeeper
Kafka的运行依赖于Zookeeper,所以在运行Kafka之前我们需要安装并运行Zookeeper
2.1 下载安装文件: http://zookeeper.apache.org/releases.html2.2 解压文件(本文解压到 G:\zookeeper-3.4.8)2.3 打开G:\zookeeper-3.4.8\conf,把zoo_sample.cfg重命名成zoo.cfg2.4 从文本编辑器里打开zoo.cfg2.5 把dataDir的值改成“:\zookeeper-3.4.8\data”2.6 添加如下系统变量:-
- ZOOKEEPER_HOME: G:\zookeeper-3.4.8
- Path: 在现有的值后面添加 ";%ZOOKEEPER_HOME%\bin;"
2.7 运行Zookeeper: 打开cmd然后执行
zkserver
3. 安装并运行Kafka
服务启动前的命令准备
同样的我们观察bin目录中我们会发现Kafka针对Linux和windows提供了不同的组件。windows的组件放在了windows的文件夹下了。但是我在实际操作中无法使用里面的命令。报一些错误。这里我的解决办法是将windows里的bat全部复制到外面。就是复制到bin目录下。
上图中指出来的bat原本是在windows文件中。拷贝到bin目录之后我们需要修改一下kafka-run-class.bat文件。因为里面写的相对路径和引入的jar会导致出错。所以我们将里面的这段代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 替换成
- 1
- 2
- 3
- 1
- 2
- 3
- 我们仔细观察原来的配置大概意思是引入一些jar包啥的。但是会出现有的时候我们的文件根本没有那个jar。但是又引入了。会经常报错。所以我们改成引入libs下的所有jar.有啥就引入啥。这样就不会报错的。
大坑预防
- 到这里我原本天真的认为就已经完事了。但是谁知我按照网上的教程继续的时候就出现如下错误
-
首先第一行提示 set JMX_PORT to default value 9999 这个错误是因为我没有设置这个值。这倒是小事。但是后面报说找不到或无法加载主类kafka.Kafka这就让我费解。在这里我也是卡了一天了。后来在网上找到了一个方法。我不知道这是不是Kafka的bug。反正用这个方法我是解决了这个错误了。
- 解决办法就是将kafka-run-class.bat文件中
- 1
- 1
- 修改为
- 1
- 1
- 对比我们发现就是将classpath加上双引号。搞了半天就是系统变量路径没有找到的原因。不过这个问题值得引起我们的注意。我们的kafka寄去你的搭建实在Java 的jdk基础是搭建的。所以前提我们得将jdk等这些配置到环境变量中去。这里的配置网上搜去吧很多。
服务开启
到这一步我们离kafka的成功又不远了。我们新开cmd窗口cd到kafka的bin目录中。
但是在执行开启之前我们需要先执行
- 1
- 1
- 然后在执行
4.创建Topic批处理
- 官网上是没有提供windows版本的topic处理程序的。我们需要自己新建一个bat文件。这个bat文件的内容填写如下
- 1
- 1
创建一个topic:kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
- 有了这个批处理我们就可以通过它实现topic的创建。生产者发送消息和消费者的接收消息
创建一个topic:
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
- 1
- 1
5. 打开一个Producer:
cd /d G:\kafka_2.11-0.10.0.1\bin\windows
kafka-console-producer.bat --broker-list localhost:9092 --topic test
6. 打开一个Consumer:
cd /d G:\kafka_2.11-0.10.0.1\bin\windows
kafka-console-consumer.bat --zookeeper localhost:2181 --topic test然后就可以在Producer控制台窗口输入消息了。在消息输入过后,很快Consumer窗口就会显示出Producer发送的消息:
- 1
- 1
- 最后在接收发送消息是我们需要重新创建新的cmd窗口。下面看看效果图。最终实现实时接收消息