Kafka 安裝配置及快速入門

1、簡介java

    官網:http://kafka.apache.org/apache

    Apache Kafka是分佈式發佈-訂閱消息系統。它最初由LinkedIn公司開發,以後成爲Apache項目的一部分。Kafka是一種快速、可擴展的、設計內在就是分佈式的,分區的和可複製的提交日誌服務。bootstrap

    Apache Kafka與傳統消息系統相比,有如下不一樣:服務器

  • 它被設計爲一個分佈式系統,易於向外擴展;socket

  • 它同時爲發佈和訂閱提供高吞吐量;分佈式

  • 它支持多訂閱者,當失敗時能自動平衡消費者;this

  • 它將消息持久化到磁盤,所以可用於批量消費,例如ETL,以及實時應用程序。.net

2、安裝設計

    下載地址:wget http://mirrors.shuosc.org/apache/kafka/1.0.2/kafka_2.11-1.0.2.tgz日誌

    解壓:tar -zxvf kafka_2.11-1.0.2.tgz

    cd kafka_2.11-1.0.2

3、啓動服務器

    一、啓動ZooKeeper
            Kafka使用ZooKeeper,因此您須要先啓動一個ZooKeeper服務器,若是您尚未。您可使用隨Kafka一塊兒打包的便捷腳原本獲取一個快速可是比較粗糙的單節點ZooKeeper實例。

    啓動命令:bin/zookeeper-server-start.sh config/zookeeper.properties

    這個 zookeeper中主要就3個配置:

        # the directory where the snapshot is stored.
        dataDir=/tmp/zookeeper
        # the port at which the clients will connect
        clientPort=2181
        # disable the per-ip limit on the number of connections since this is a non-production config
        maxClientCnxns=0

    咱們須要記住zookeeper的端口 2181,在後面會用到。

    二、Kafka基本配置
        Kafka在config目錄下提供了一個基本的配置文件。爲了保證能夠遠程訪問Kafka,咱們須要修改兩處配置。

        打開config/server.properties文件,在很靠前的位置有listeners和 advertised.listeners兩處配置的註釋,去掉這兩個註釋,而且根據當前服務器的IP修改以下:

        # The address the socket server listens on. It will get the value returned from 
        # java.net.InetAddress.getCanonicalHostName() if not configured.
        #   FORMAT:
        #     listeners = listener_name://host_name:port
        #   EXAMPLE:
        #     listeners = PLAINTEXT://your.host.name:9092
        listeners=PLAINTEXT://:9092

        # Hostname and port the broker will advertise to producers and consumers. If not set, 
        # it uses the value for "listeners" if configured.  Otherwise, it will use the value
        # returned from java.net.InetAddress.getCanonicalHostName().
        advertised.listeners=PLAINTEXT://192.168.163.10:9092

    當前服務器IP爲192.168.163.10,你須要修改成外網或局域網能夠訪問到的服務器IP。

    三、啓動Kafka

        接下來啓動Kafka服務:

            啓動命令:bin/kafka-server-start.sh config/server.properties

    四、建立 Topic

        使用下面的命令建立 Topic。

            命令:bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

    五、啓動一個消費者

        在一個新的終端執行下面的命令。

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

    六、啓動生產者

            命令:bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

        啓動後,能夠輸入內容,而後回車。

        此時你應該能夠在上一個消費者中看到有消息輸出。

    七、查看 topic 列表

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

    八、查看描述 topics 信息

            命令:bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test

        第一行給出了全部分區的摘要,每一個附加行給出了關於一個分區的信息。 因爲咱們只有一個分區,因此只有一行。

        「Leader」: 是負責給定分區的全部讀取和寫入的節點。 每一個節點將成爲分區隨機選擇部分的領導者。

        「Replicas」: 是複製此分區日誌的節點列表,不管它們是不是領導者,或者即便他們當前處於活動狀態。

        「Isr」: 是一組「同步」副本。這是複製品列表的子集,當前活着並被引導到領導者。

相關文章
相關標籤/搜索