本文参考:http://blog.csdn.net/evankaka/article/details/52421314
java测试代码可参考:http://blog.csdn.net/evankaka/article/details/52494412
kafka使用zookeeper来实现动态的集群扩展,不需要更改客户端(producer和consumer)的配置。broker会在zookeeper注册并保持相关的元数据(topic,partition信息等)更新。
而客户端会在zookeeper上注册相关的watcher。一旦zookeeper发生变化,客户端能及时感知并作出相应调整。这样就保证了添加或去除broker时,各broker间仍能自动实现负载均衡。
下载安装包:http://zookeeper.apache.org/releases.html#download
下载后解压到一个目录:
...
...
2017-04-26 14:18:53,364 [myid:] - INFO [main:Environment@100] - Server environment:user.dir=E:\zookeeper-3.4.8
2017-04-26 14:18:53,370 [myid:] - INFO [main:ZooKeeperServer@787] - tickTime set to 2000
2017-04-26 14:18:53,370 [myid:] - INFO [main:ZooKeeperServer@796] - minSessionTimeout set to -1
2017-04-26 14:18:53,371 [myid:] - INFO [main:ZooKeeperServer@805] - maxSessionTimeout set to -1
2017-04-26 14:18:53,415 [myid:] - INFO [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181
下载http://kafka.apache.org/downloads.html。注意要下载二进制版本的
下载后解压到任意一个目录,笔者的是D:\Java\Tool\kafka_2.11-0.10.0.1
运行:
重要:请确保在启动Kafka服务器前,Zookeeper实例已经准备好并开始运行。
.\bin\windows\kafka-server-start.bat .\config\server.properties
若果出现错误: “找不到或无法加载主类 Files\java\jdk1.7.0_80\lib;C:\Program”
解决方式如下:
在kafka安装目录中找到bin\windows目录中的kafka-run-class.bat找到142行为%CLASSPATH%加上双引号
修改前:set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp %CLASSPATH% %KAFKA_OPTS% %*
修改后:set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp "%CLASSPATH%" %KAFKA_OPTS% %*
上面的Zookeeper和kafka一直打开
.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic linlin
.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic linlin
.\bin\windows\kafka-console-consumer.bat --zookeeper localhost:2181 --topic linlin
在生产者命令窗口输入一句话进行测试,如: Hello I am linlin, who are you,然后回车。可以看到消费之窗口获取到了这一条消息。
.\bin\windows\kafka-topics.bat --zookeeper localhost:2181 --list
.\bin\windows\kafka-topics.bat --zookeeper localhost:2181 --describe
从上面的安装测试也大概可以看出kafka的结构。下图为kafka的结构图,摘自网络