kafka集羣搭建

Introduction

  1. 什麼是kafka

    Kafka是一種高吞吐量的分佈式發佈訂閱消息系統,它能夠處理消費者規模的網站中的全部動做流數據。 這種動做(網頁瀏覽,搜索和其餘用戶的行動)是在現代網絡上的許多社會功能的一個關鍵因素。 這些數據一般是因爲吞吐量的要求而經過處理日誌和日誌聚合來解決。 對於像Hadoop的同樣的日誌數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka的目的是經過Hadoop的並行加載機制來統一線上和離線的消息處理,也是爲了經過集羣來提供實時的消費。java

  2. kafka特性
    經過O(1)的磁盤數據結構提供消息的持久化,這種結構對於即便數以TB的消息存儲也可以保持長時間的穩定性能。
    高吞吐量:即便是很是普通的硬件Kafka也能夠支持每秒數百萬的消息。
    支持經過Kafka服務器和消費機集羣來分區消息。
    支持Hadoop並行數據加載。
  3. kafka術語含義
    broker(代理)
      Kafka集羣包含一個或多個服務器,這種服務器被稱爲broker
    Topic
      每條發佈到Kafka集羣的消息都有一個類別,這個類別被稱爲Topic(能夠理解爲隊列queue或者目錄)。物理上不一樣Topic的消息分開存儲,邏輯上一個Topic的消息雖然保存於一個或多個broker上但用戶只需指定消息的Topic便可生產或消費數據而沒必要關心數據存於何處。  
    Partition
    Parition是物理上的概念(能夠理解爲文件夾),每一個Topic包含一個或多個Partition。
    Producer  
      生產者,負責發佈消息到Kafka broker。
    Consumer
      消息消費者,向Kafka broker讀取消息的客戶端。
    Consumer Group
      每一個Consumer屬於一個特定的Consumer Group(可爲每一個Consumer指定group name,若不指定group name則屬於默認的group)。

quickstart

同zk同樣在192.168.1.11,192.168.1.12,192.168.1.13三臺機器上安裝
  1. zk集羣準備
    kafka經過Zookeeper管理集羣配置,選舉leader,以及在Consumer Group發生變化時進行rebalance。Producer使用push模式將消息發佈到broker,Consumer使用pull模式從broker訂閱並消費消息。雖然kafka自帶zk,不過只是standalone模式。zookeeper集羣安裝能夠看前面的文章。
  2. download and installapache

    wget http://mirrors.hust.edu.cn/ap...
    mv kafka_2.12-0.11.0.1.tgz /usr/local
    tar -xzf kafka_2.12-0.11.0.1.tgz
    cd kafka_2.12-0.11.0.1.tgz服務器

  3. 修改配置文件
    vi config/server.properties
    圖片描述
    圖片描述
  4. 分發到另外2臺機器網絡

    scp -r /kafka_2.12-0.11.0.1 root@192.168.1.12:/usr/local
    scp -r /kafka_2.12-0.11.0.1 root@192.168.1.12:/usr/local數據結構

    分別修改server.properties中的broker.id的參數,保證3個節點的值不重複
    listeners 中的監聽ip改爲本機ip
    而後分別啓動kafka服務分佈式

    nohup /bin/kafka-server-start.sh config/server.properties > /dev/null &oop

  5. 檢查集羣是否安裝成功
    在192.168.1.13機器上建立一個topic

bin/kafka-topics.sh --create --zookeeper 192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181 --replication-factor 3 --partitions 5 --topic kafka-distrub-test性能

在192.168.1.11上查看該topic的信息網站

bin/kafka-topics.sh --describe --zookeeper 192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181 --topic kafka-distrub-testui

返回結果以下則表示kafka集羣安裝成功
圖片描述
若是將broker.id=2的機器上的kafka服務關閉,集羣會自動從新選舉一個broker做爲leader。全部kafka的動態擴容是很是方便的。

the end

由於我寫了個用java程序模擬consumer和producer,全部這裏就不對這兩個命令作介紹了,demo地址:

相關文章
相關標籤/搜索