Kafka环境搭建与测试

本文基于kafka 0.8.1。

准备工作

  • 安装java
  • 安装zookeeper(自行google)

下载与安装

下载地址

https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz

安装与启动

  • 解压
1
2
$ tar -xzf kafka_2.10-0.8.1.1.tgz
$ cd kafka_2.10-0.8.1.1.tgz
  • 配置

    进入kafka安装目录编辑server配置文件
1
$ vim config/server.properties

修改以下配置:

1
2
port=9092
zookeeper.connect=yourIP:2181
  • 启动zookeeper
1
$ nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
  • 启动kafka
1
$ bin/kafka-server-start.sh config/server.properties

如果报错

1
2
Unrecognized VM option '+UseCompressedOops'
Could not create the Java virtual machine.

这是因为kafka用了很多用来优化运行的jvm参数,而你安装的 jdk所带的jvm不一定支持这些参数,比如: -XX:+UseCompressedOops ,在bin/kafka-run-class.sh中移除相关参数即可。

如果报错

1
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

下载slf4j http://www.slf4j.org/dist/slf4j-1.7.6.zip

解压

1
$ unzip slf4j-1.7.6.zip

把slf4j-nop-1.7.6.jar 包复制到kafka libs目录下面

1
2
$ cd slf4j-1.7.6
$ cp slf4j-nop-1.7.6.jar your kafka path/libs/
  • 创建topic
1
$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
  • 验证topic是否创建成功
1
$ bin/kafka-topics.sh --list --zookeeper localhost:2181

显示 test

  • 在console模式下启动一个producer,发送消息
1
$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

键入信息,比如

1
2
message1
message2
  • 在console模式下启动一个consumer,接收信息
1
$ bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

配置3个broker节点的kafka集群

  • 在kafka的config目录下配置多个server.properties
1
2
$ cp config/server.properties config/server-1.properties
$ cp config/server.properties config/server-2.properties
  • 分别编辑上述两个文件,配置属性
1
2
3
4
config/server-1.properties:
broker.id=1
port=9093
log.dir=/tmp/kafka-logs-1
1
2
3
4
config/server-2.properties:
broker.id=2
port=9094
log.dir=/tmp/kafka-logs-2
  • 启动服务
1
2
$ nohup bin/kafka-server-start.sh config/server-1.properties &
$ nohup bin/kafka-server-start.sh config/server-2.properties &
  • 创建topic
1
$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic 3-broker-test

查看topic时

1
bin/kafka-topics.sh --list --zookeeper localhost:2181

可以看到已经创建的两个topic

1
2
3-broker-test
test
  • 启动producer和consumer

启动producer

1
$ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic 3-broker-test

输入信息:

1
2
3
hello
hello world
hello gay

启动consumer

1
$ bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic 3-broker-test

收到信息

1
2
3
hello
hello world
hello gay

安装配置成功。