Kafka+Zookeepr的单节点集成配置

安装配置Zookeeper

1. 安装zookeeper:

yitian@heron01:~$ mkdir zookeeper
yitian@heron01:~$ cd zookeeper/
yitian@heron01:~/zookeeper$ tar -zxvf zookeeper-3.4.10.tar.gz 

解压后,在zoo.cfg配置文件中进行如下配置:

yitian@heron01:~/zookeeper/zookeeper-3.4.10/conf$ mv zoo_sample.cfg zoo.cfg

配置如下:

dataDir=/home/yitian/zookeeper/data
dataLogDir=/home/yitian/zookeeper/logs

并根据dataDir创建所需的文件目录:

yitian@heron01:~/zookeeper$ mkdir logs
yitian@heron01:~/zookeeper$ mkdir data

2. 配置完成后,启动zookeeper:

yitian@heron01:~$ ./zookeeper/zookeeper-3.4.10/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/yitian/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
yitian@heron01:~$ ./zookeeper/zookeeper-3.4.10/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/yitian/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
yitian@heron01:~$ jps
2280 QuorumPeerMain
2302 Jps

具体的zookeeper集群的安装和配置见:

安装配置Kafka

1. 安装Kafka

具体的Kafka的安装见:http://www.zhangyitian.cn/blog/kafka%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8%EF%BC%88kafka-doc-quickstart%EF%BC%89/

2. 配置kafka中使用之前构建的单节点zookeeper,修改kafka的配置文件如下:

listeners=PLAINTEXT://192.168.209.137:9092
zookeeper.connect=192.168.209.137:2181

如果zookeeper配置的为集群模式,则zookeeper的配置项可以使用“,”分开。

3. 启动kafka进行测试

yitian@heron01:~/kafka/kafka_2.11-2.0.0$ bin/kafka-server-start.sh config/server.properties 

4. 使用命令行模式进行运行producer和consumer

创建topic:

yitian@heron01:~/kafka/kafka_2.11-2.0.0$ bin/kafka-topics.sh --create --zookeeper 192.168.209.137:2181 --replication-factor 1 --partitions 1 --topic zk-topic
Created topic "zk-topic".

列出所有的topic:

yitian@heron01:~/kafka/kafka_2.11-2.0.0$ bin/kafka-topics.sh --list --zookeeper 192.168.209.137:2181
zk-topic

启动producer发送一些信息:

yitian@heron01:~/kafka/kafka_2.11-2.0.0$ bin/kafka-console-producer.sh --broker-list 192.168.209.137:9092 --topic zk-topic
>This is a message for test kafka based on zookeeper
>

然后启动consumer接受消息:

yitian@heron01:~/kafka/kafka_2.11-2.0.0$ bin/kafka-console-consumer.sh --bootstrap-server 192.168.209.137:9092 --topic zk-topic --from-beginning
This is a message for test kafka based on zookeeper

可见,kafka和zookeeper集成成功。

使用Java编写的Kafka程序

使用kafka的java API编写的简单productor和consumer见:

在配置项中,进行如下修改:

image

因为之前使用的是kafka自带的zookeeper进行的启动,因此broker的URL需要配置为:localhost:9092(该项配置也是kafka配置文件中的默认配置)。在修改kafka的配置文件后,就需要在java的配置项中对该项进行相应的修改。

修改后先启动producer,在启动consumer后,运行成功。

其中,consumer的运行输出:

image

资料参考