环境:ubuntu10 2台(32位)+JDK1.8(32位)+kafka2.11
假设ubuntu1的IP定义192.168.200.129,ubuntu2的IP定义192.168.200.130。
1、下载kafka.去官网下载2进制版本即可。
2、在ubuntu1机器上解压kafka_2.11-0.10.0.0.tgz。
在ubuntu2机器上解压kafka_2.11-0.10.0.0.tgz。
3、kafka里面自带zookeeper.
3.1) ubuntu1上修改config目录下的server.properties,添加:
listeners=PLAINTEXT://192.168.200.129:9092
3.2) ubuntu1上启动zookeeper.
./zookeeper-server-start.sh ../config/zookeeper.properties &
3.3) ubuntu1上启动kafka
./kafka-server-start.sh ../config/server.properties &
3.4) ubuntu1上启动生产者。
./kafka-console-producer.sh --broker-list 192.168.200.129:9092 --topic test
3.5) ubuntu2上启动消费者。
./kafka-console-consumer.sh --zookeeper 192.168.200.129:2181 --topic test --from-beginning
3.6)在ubuntu1上输入hello,将在ubuntu2上显示hello.说明成功了。
扩展:
1、判断kafka有没有启动成功,输入jps命令,如果已经正常启动,结果如下:
4629 Kafka 4417 QuorumPeerMain 5141 Jps
2、一开始没有修改ubuntu1上面的server.properties中的listener配置,ubuntu2上的消费者始终报如下错:
kafka.common.KafkaException: fetching topic metadata for topics [Set(test)] from broker [ArrayBuffer(BrokerEndPoint(0,zk1,9092))] failed
google了一下,外国的一篇帖子和我情况很像,解决方案给了我灵感,就是没有显式设置监听的IP,如果不显式指定,监听的是localhost,就是127.0.0.1,这样除本机外是访问不了的。
3、本文章参考来源。
4、kafka官网
7、kafka启动脚本,就是将启动zookeeper和kafka的命令集成在一起。
8、kafka集群安装,又一个例子。