** 一开始在windows环境下运行kafka,总是跑步起来,随后我就建了一个linux7的虚拟机。以下是在linux环境下运行的。**
Step 1: Download the code
Download the 0.10.1.0 release and un-tar it.
解压后进入kafka_2.11-0.10.1.0目录
> tar -xzf kafka_2.11-0.10.1.0.tgz
> cd kafka_2.11-0.10.1.0
Step 2: Start the server
首先要先启动ZooKeeper的服务,再启动Kafka的服务:
> bin/zookeeper-server-start.sh config/zookeeper.properties &
//[2016-10-24 14:14:33,264] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
//[2016-10-24 14:14:33,277] INFO autopurge.snapRetainCount set to 3 (org.apache.zookeeper.server.DatadirCleanupManager)
.....
> bin/kafka-server-start.sh config/server.properties
//[2016-10-24 14:14:59,860] INFO KafkaConfig values:
//advertised.host.name = null
.....
Step 3: Create a 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
test
Step 4: Send some messages
创建一个producer并发一些消息之后可以在consumer那边收到消息。
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
This is a message
This is another message
Step 5: Start a consumer
在开一个终端
> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
This is a message
This is another message
这样在producer那边发的消息就可以在consumer收到了。
Step 6: Setting up a multi-broker cluster
首先复制文件,
> 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
开启2个新建的节点
> 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
Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:
Topic: my-replicated-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0
随后像之前一样用producer发消息,consumer接收消息,
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic
...
my test message 1
my test message 2
^C
> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic
...
my test message 1my test message 2
^C
用下列命令将Broker 1杀死,但是之前的消息仍然存在并能消费:
> ps aux | grep server-1.properties
7564 ttys002 0:15.91 /System/Library/Frameworks/JavaVM.framework/Versions/1.8/Home/bin/java...
> kill -9 7564
> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic
...
my test message 1
my test message 2
^C
Step 7: Use Kafka Connect to import/export data
能够将一个文件中的内容实时传送到另一个文件中。
创建文件并写入内容
> echo -e "foo\nbar" > test.txt
执行如下命令:
> bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties
保持改命令开启,不关掉
自动会为你生成test.sink.txt文件,里面的内容和test.txt一样。
接下来若你在对test.txt文件追加内容,test.sink.txt中的内容会同步更新。
网友评论