美文网首页
kafka quickstart

kafka quickstart

作者: 尉昌达 | 来源:发表于2016-10-24 16:21 被阅读46次

    ** 一开始在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

          本文链接:https://www.haomeiwen.com/subject/nhsluttx.html