windows下的kafka环境搭建
有关kafka的一些介绍以及Linux下的环境搭建,可以看看这篇文章http://www.aboutyun.com/thread-12882-1-1.htmllinux-kafka
本篇文章主要介绍了kafka在windows下的环境搭建以及安装php-rdkafka扩展
下面就来介绍一下环境搭建的steps
step1:安装jdk】
在官网根据自己的电脑下载对应的jdk版本,记得配置系统变量JAVA_HOME和PATH路径哦, 安装成功结果如下图所示:
step2:安装zookeeper
Kafka的运行依赖于Zookeeper,所以在运行Kafka之前我们需要安装并运行Zookeeper。我们可以在官网下载zookeeper
解压文件,打开conf,并修改zoo_sample.cfg
dataDir=D:\zookeeper\zookeeper-3.4.8\data
dataLogDir=D:\zookeeper\zookeeper-3.4.8\log
运行zookeeper,在cmd界面输入zkserver.cmd,输出以下信息,则表示zookeeper启动成功
step3:安装并运行kafka
在官网下载安装文件kafka
解压文件,修改config文件夹下的server.properties
log.dirs=D:\kafka\kafka_2.11-0.10.0.1\logs
windows下执行windows下的bat文件,linux下则是执行bash文件
OK,我们打开cmd界面,输入以下命令
.\bin\windows\kafka-server-start.bat .\config\server.properties
结果如下:
ok,在这里我们可能会遇到这样的报错:
Error: missing `server' JVM at `D:\jdk1.8\jdk\bin\server\jvm.dll'.
没关系,把jdk下的jre\bin\server下的server文件夹复制到D:\jdk1.8\jdk\bin目录试试,安装的时候记得检查我们的环境变量哦!吼吼,接下来让我们开始测试一下吧
step4:打开一个producer
D:\kafka\kafka_2.11-0.10.0.1\bin\windows>kafka-console-producer.bat --broker-list localhost:9092 --topic test
输入消息进行测试,如下图所示
step5:打开一个consumer
D:\kafka\kafka_2.11-0.10.0.1\bin\windows>kafka-console-consumer.bat --zookeeper localhost:2181 --topic test
我们可以看到输出的消息,如下图所示
ok,到此为止我们的kafka环境就搭建好啦,接下来我们开始装kafka扩展。windows 下载dll扩展,linux下直接编译就好kafka,扩展安装好了以后,查看phpinfo信息
好了,接下来就是测试time
<?php
//连接kafka
$rk = new RdKafka\Producer();
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("127.0.0.1:9092");
$topic = $rk->newTopic("hx");
$topic->produce(RD_KAFKA_PARTITION_UA, 0, "little star star lalala");
在我们的kafka可以看到
取出消息
<?php
$rk = new RdKafka\Consumer();
$rk->setLogLevel(LOG_DEBUG);
$rk->addBrokers("127.0.0.1");
$topic->consumeStart(0, RD_KAFKA_OFFSET_BEGINNING);
while (true) {
$msg = $topic->consume(0, 1000);
if ($msg->err) {
echo $msg->errstr(), "\n";
break;
} else {
echo $msg->payload, "\n";
} }
如果我们在浏览器里面运行,就会出现以下错误
Fatal error: Uncaught RdKafka\Exception: Failed to create thread: No error (0) in E:\phpstudy\WWW\sim\script\test.php:5 Stack trace: #0 E:\phpstudy\WWW\sim\script\test.php(5): RdKafka\Consumer->__construct() #1 {main} thrown in E:\phpstudy\WWW\sim\script\test.php on line 5
只能在命令行模式下面执行咯
这样我们就搭建好了我们的环境!!似不似很6呀呀呀呀呀~~~~~~~