1. 下载
其他版本下载地址:
http://kafka.apache.org/downloads
2. 解压
tar -xzf kafka_2.11-1.1.0.tgz
3. 启动服务
进入解压后的目录
启动之前如果没有zookeeper的话,可以用kafka内置的zookeeper
启动内置zookeeper:bin/zookeeper-server-start.sh config/zookeeper.properties
启动kafka服务:bin/kafka-server-start.sh config/server.properties
4. 创建一个topic,名为test
创建topic:bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic
test
查看topic
:
bin/kafka-topics.sh --list --zookeeper localhost:2181
5. 发送一些message
命令:bin/kafka-console-producer.sh --broker-list localhost:9092 --topic
test
然后输入想发送的message:例如
This is a message
This is another message
6. 启动一个 consumer
命令:bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic
test
--from-beginning
会看到你刚才发送的message,例如:
This is a message
This is another message
7. 配置一个 multi-broker 集群
现在我们已经,启动了单节点的kafka,下面将配置三个节点的集群
复制两个配置文件:
cp
config/server.properties config/server-1.properties
cp
config/server.properties config/server-2.properties
配置这两个配置文件:
config/server-1.properties:
broker.id=1
listeners=
PLAINTEXT://:9093
log.dir=/tmp/kafka-logs-1
config/server-2.properties:
broker.id=2
listeners=
PLAINTEXT://:9094
log.dir=/tmp/kafka-logs-2
切换到root权限,然后
bin/kafka-server-start.sh config/server-1.properties &
bin/kafka-server-start.sh config/server-2.properties &
创建一个topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
查看topic
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
查看之前创建的"test" topic
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic
test
发送一些message
命令:bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic
test
然后,输入想发送的message,例如:
my
test
message 1
my
test
message 2
消费这两条message
命令:bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic
然后会看到输出如下:
my
test
message 1
my
test
message 2
杀死 leader节点:
根据刚才查看的leader文件杀进程,例如:
ps aux | grep server-1.properties
kill -9 进程号
再次查看topic:
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
在发送几条message,发现可以正常被消费
8. 使用kafka connect import/export 数据
准备数据:
echo
-e
"foo\nbar"
>
test
.txt
启动两个独立的kafka连接器:
bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties
消费数据:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-
test
--from-beginning
9. 使用 Kafka Streams 处理数据