kafka quickstart

** 一开始在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中的内容会同步更新。

你可能感兴趣的:(kafka quickstart)