天天看點

Linux環境中Kafka服務安裝與配置

作者:JasonTang

簡介:Apache Kafka是一個開源消息系統,是由Apache軟體基金會開發的一個開源消息系統項目。Kafka是一個分布式消息隊列。Kafka對消息儲存時根據Topic進行歸類,發送消息者稱為Producer,消息接受者稱為Consumer,此外kafka叢集有多個kafka執行個體組成,每個執行個體(server)稱為broker。無論是kafka叢集,還是consumer都依賴于zookeeper叢集儲存一些meta資訊,來保證系統可用性。能夠很好地進行離線和線上應用。分布式消息傳遞基于可靠的消息隊列,在用戶端應用和消息系統之間異步傳遞消息。有兩種主要的消息傳遞模式:點對點傳遞模式、釋出-訂閱模式。大部分的消息系統選用釋出-訂閱模式。Kafka就是一種釋出-訂閱模式。

在釋出-訂閱消息系統中,消息被持久化到一個topic中。與點對點消息系統不同的是,消費者可以訂閱一個或多個topic,消費者可以消費該topic中所有的資料,同一條資料可以被多個消費者消費,資料被消費後不會立馬删除。在釋出-訂閱消息系統中,消息的生産者稱為釋出者,消費者稱為訂閱者。

JMS中定義了兩種消息模型:點對點(point to point, queue)和釋出/訂閱(publish/subscribe,topic)。主要差別就是是否能重複消費。點對點(Queue)不可重複消費;而釋出/訂閱(Topic)可以重複消費。

本文主要介紹消息訂閱伺服器Kafka的安裝與配置。詳細内容請參考下文。

一、準備安裝環境

1、登陸Linux系統

Linux環境中Kafka服務安裝與配置

2、下載下傳Kafka及其依賴包JDK&Zookeeper

Linux環境中Kafka服務安裝與配置

3、上傳之前下載下傳好的安裝包到 /datalake 目錄

Linux環境中Kafka服務安裝與配置

4、切換到/datalake目錄并批量解壓這幾個安裝包

執行指令# ls * | xargs -n1 tar xzvf批量解壓相應的軟體包

Linux環境中Kafka服務安裝與配置

5、将解壓的軟體移動到 /usr/local對應目錄

執行指令# mv jdk1.8.0_202 /usr/local/jdk遷移JDK

Linux環境中Kafka服務安裝與配置

執行指令# mv kafka_2.11-2.1.0 /usr/local/kafka遷移Kafka

Linux環境中Kafka服務安裝與配置

執行指令# mv zookeeper-3.4.5 /usr/local/zk遷移Zookeeper

Linux環境中Kafka服務安裝與配置

二、安裝并配置Kafka伺服器

1、配置 Zookeeper

首先,先備份 Zookeeper 的預設配置檔案

Linux環境中Kafka服務安裝與配置

然後,修改配置檔案zoo.cfg, 将 dataDir 選項配置為

dataDir=/usr/local/zk/data

Linux環境中Kafka服務安裝與配置

2、配置 Kafka

執行指令# vim /usr/local/kafka/config/server.properties将 log.dirs 參數修改為log.dirs=/usr/local/kafka/logs

Linux環境中Kafka服務安裝與配置

3、配置環境變量

執行指令# vim /etc/profile添加如下内容

export JAVA_HOME=/usr/local/jdk

export ZK_HOME=/usr/local/zk

export KAFKA_HOME=/usr/local/kafka

export PATH=$PATH:$JAVA_HOME/bin:$ZK_HOME/bin:$KAFKA_HOME/bin

執行指令# source /etc/profile是環境變量生效

Linux環境中Kafka服務安裝與配置

三、啟動Kafka伺服器

1、執行指令# ./zkServer.sh start啟動Zookeeper

Linux環境中Kafka服務安裝與配置

2、啟動 Kafka

執行指令# ./kafka-server-start.sh /usr/local/kafka/config/server.properties

Linux環境中Kafka服務安裝與配置

3、打開另一個Shell視窗,建立topic

執行指令# kafka-topics.sh --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --create --topic test

Linux環境中Kafka服務安裝與配置

4、再開一個 Shell 視窗,啟動生産者producer

執行指令# kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test

Linux環境中Kafka服務安裝與配置

5、再打開另一個 Shell 視窗,啟動消費者consumer

執行指令# kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test

Linux環境中Kafka服務安裝與配置

四、測試Kafka消息釋出-訂閱模式

說明:從生産者啟動頁面,發送資料,消費者能正常接收資料。

1、生産者producer界面

Linux環境中Kafka服務安裝與配置

2、消費者consumer界面

Linux環境中Kafka服務安裝與配置

備注:生産者發送的消息(無論是英文還是中文),消費者都可以及時看到。