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入门经典教程-Kafka-about云开发 http://www.aboutyun.com/threa...
    葡萄喃喃呓语阅读 10,895评论 4 54
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • 本文转载自http://dataunion.org/?p=9307 背景介绍Kafka简介Kafka是一种分布式的...
    Bottle丶Fish阅读 5,513评论 0 34
  • Kafka官网:http://kafka.apache.org/入门1.1 介绍Kafka™ 是一个分布式流处理系...
    it_zzy阅读 3,923评论 3 53
  • 背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O...
    高广超阅读 12,910评论 8 167