Kafka(二): Kafka 集羣部署與使用

一、Kafka 集羣部署                                                           

     

    Kafka是一種分佈式的發佈(producer/訂閱(consumer)的消息系統,並支持實時和離線的數據處理、可擴展、持久的。上一次已經對kafka做了介紹,今天我們介紹如何部署、創建主題併發布消息和訂閱消息

     1、兩個虛擬機:192.168.2.200192.168.2.201

   2、kafka下載地址:http://kafka.apache.org/downloads ,我下載的是最新版本kafka_2.12-0.10.2.1.tgz

   3、對兩個虛擬機分別解壓

     > tar -xzf kafka_2.12-0.10.2.1.tgz
     > cd kafka_2.12-0.10.2.1.tgz

   4、配置 config/server.properties 文件

        broker.id=200 / broker.id=201

        zookeeper.connect=192.168.2.200:2181,192.168.2.201:2181

 

       broker.id:每一個broker在集羣中的唯一表示,要求是正數

       zookeeper.connect:zookeeper集羣的地址,可以是多個,多個之間用逗號分割。


      5Kafka依zookeeperkafka的集羣的meta信息保存在zookeeper上,zookeeper管理consumeroffset,通過zookeeper的分佈式系統協調來保證Kafka 集羣的穩定性。Zookeeper的安裝配置、並啓動zookeeper


     6zookeeper集羣先啓動,然後啓動192.168.2.200192.168.2.201虛擬機上的kafkaserver

       

      >bin/kafka-server-start.sh config/server.properties &
           

           

 

      創建主題併發布消息和訂閱消息


  二、創建主題                                                                                                         

   創建了主題名my-test-topic2個分區,一個副本

      >bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic my-test-topic
 

  主題信息

     1、查看哪些主題列表     

      >bin/kafka-topics.sh --list --zookeeper localhost:2181

         

     2、具體查看某個主題的描述信息         

       >bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-test-topic
           

       第一行描述了my-test-topic主題的信息、正如我們之前的創建的兩個分區、一個副本。接下去每一個描述對應的各個分區的情況,有多少個分區就有對應幾行。

       Leader:負責處理消息的讀和寫,Leader是從所有節點中隨機選擇的.

       Replicas:分區對應的副本。

       Isr:副本所在的server 節點。

       

 三、發佈消息和訂閱消息                                                                                              

   1、發佈消息       

        >bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-test-topic
                

        

         1)查看發佈者         

       >./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic  my-test-topic
          my-test-topic:1:1
          my-test-topic:0:1

   2、訂閱消息

      >bin/kafka-console-consumer.sh --bootstrap-server localhost:9092  --topic my-test-topic --from-beginning

                      

      1)查看訂閱描述信息     

      >bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --consumer.config group.id:test-consumer-group --topic my-test-topic --from-beginning


[2017-05-20 08:35:26,396] WARN WARNING: ConsumerOffsetChecker is deprecated and will be dropped in releases following 0.9.0. Use ConsumerGroupCommand instead. (kafka.tools.ConsumerOffsetChecker$)

Exiting due to: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /consumers/test-consumer-group/offsets/my-test-topic/0.

  0.9.0.版本後對kafka.tools.ConsumerOffsetChecker命令就不在支持了。

 

           2)查看消費組 

            >bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

                 

 

           3)查看具體的消費者信息

       >bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server localhost:9092 --describe --group console-consumer-44096

         

 

       4)我們在消費時指定消費組,config/consumer.properties配置的group.id

         >bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --consumer.config  config/consumer.properties  --topic my-test-topic --from-beginning
                       


五、刪除主題                                                                                                           

 1、刪除Broker

     >jps
     >Kill -9 進程ID


  2、刪除主題

    >bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic my-test-topic



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章