1. 程式人生 > >java架構之路(MQ專題)kafka叢集配置和簡單使用

java架構之路(MQ專題)kafka叢集配置和簡單使用

  前面我們說了RabbitMQ和RocketMQ的安裝和簡單的使用,這次我們說一下Kafka的安裝配置,後面我會用幾個真實案例來說一下MQ的真實使用場景。天冷了,不願意伸手,最近沒怎麼寫部落格了,還請見諒。

一、目標

  1.知道什麼是Kafka

  2.懂得kafka的單機和叢集安裝配置

  3.瞭解內部引數的簡單配置

二、Kafka簡介

 

  Kafka是由Apache軟體基金會開發的一個開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量的分散式釋出訂閱訊息系統,它可以處理消費者在網站中的所有動作流資料。 這種動作(網頁瀏覽,搜尋和其他使用者的行動)是在現代網路上的許多社會功能的一個關鍵因素。 這些資料通常是由於吞吐量的要求而通過處理日誌和日誌聚合來解決。 對於像Hadoop一樣的日誌資料和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka的目的是通過Hadoop的並行載入機制來統一線上和離線的訊息處理,也是為了通過叢集來提供實時的訊息。——百度百科

三、Kafka使用場景

  • 日誌收集:一個公司可以用Kafka可以收集各種服務的log,通過kafka以統一介面服務的方式開放給各種consumer,例如hadoop、Hbase、Solr等。
  • 訊息系統:解耦和生產者和消費者、快取訊息等。
  • 使用者活動跟蹤:Kafka經常被用來記錄web使用者或者app使用者的各種活動,如瀏覽網頁、搜尋、點選等活動,這些活動資訊被各個伺服器釋出到kafka的topic中,然後訂閱者通過訂閱這些topic來做實時的監控分析,或者裝載到hadoop、資料倉庫中做離線分析和挖掘。
  • 運營指標:Kafka也經常用來記錄運營監控資料。包括收集各種分散式應用的資料,生產各種操作的集中反饋,比如報警和報告。

四、相關術語

  • Broker

Kafka叢集包含一個或多個伺服器,這種伺服器被稱為broker

  • Topic

每條釋出到Kafka叢集的訊息都有一個類別,這個類別被稱為Topic。

  • Partition

Partition是物理上的概念,每個Topic包含一個或多個Partition.

  • Producer

負責釋出訊息到Kafka broker

  • Consumer

訊息消費者,向Kafka broker讀取訊息的客戶端。

  • Consumer Group

每個Consumer屬於一個特定的Consumer Group(可為每個Consumer指定group name,若不指定group name則屬於預設的group)。

五、單機安裝

  1.安裝jdk,輸入yum install -y java-1.8.0-openjdk* 耐心等待即可,安裝完成以後,輸入$ java -version,檢查是否安裝成功。

  2.由於Kafka是基於Zookeeper環境的,我們安裝一下Zookeeper(不安裝也可以,最好配置一下,便於後期理解,建議安裝3.*版本)。我以前寫過Zookeeper的安裝過程,想看的可以去了解一下https://www.cnblogs.com/cxiaocai/p/11597465.html

  3.輸入wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz 等待下載完成,Kafka現在是0.*,1.*,2.*三個版本,這裡建議使用1.*版本,你也可以下載最新的2.3.1版本,下載方式wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.1/kafka_2.12-2.3.1.tgz,這裡說一下,kafka_2.12-2.3.1.tgz前面的2.12是Scala語言版本,後面的2.3.1才是我們的Kafka的版本。官網地址:http://kafka.apache.org/

  4.解壓tar -zxvf kafka_2.11-1.1.0.tgz 

  5.進入到config目錄下,vim server.properties,我們在123行可以看到Zookeeper的配置如下(不是localhost的自己改一下)

  6.啟動$ ./bin/kafka-server-start.sh -daemon config/server.properties 

  7.進入Zookeeper下檢視節點資訊。

  輸入jps看到我們的程序kafka,單機配置成功。

六、叢集安裝

  1.重複單機安裝步驟。

  2.修改配置檔案,在21行broker.id設定為不同的數字,第一臺可以設定0,第二臺1,依次類推,在123行 zookeeper.connect寫入Zookeeper叢集連線,例如zookeeper.connect=47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181。

  3.分別啟動三個Kafka。

  4.測試叢集,建立一個主題./bin/kafka-topics.sh --create --zookeeper  47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181  --replication-factor 1 --partitions 1 --topic test

  到其它伺服器下檢視現有主題即可。

七、簡單使用

  1.建立主題 ./bin/kafka-topics.sh --create --zookeeper IP:埠,IP:埠 --replication-factor 副本數 --partitions 分割槽數 --topic 主題名

   例如:./bin/kafka-topics.sh --create --zookeeper 47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181 --replication-factor 1 --partitions 1 --topic xiaocaijishu

  2.檢視現有主題 ./bin/kafka-topics.sh --list --zookeeper IP:埠,IP:埠

   例如:./bin/kafka-topics.sh --list --zookeeper 47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181

  3.刪除主題 ./bin/kafka-topics.sh --delete --topic xiaocaijishu2 --zookeeper IP:埠,IP:埠

  例如:./bin/kafka-topics.sh --delete --topic xiaocaijishu2 --zookeeper 47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181  

   4.傳送訊息 ./bin/kafka-console-producer.sh --broker-list Kafka伺服器IP:9092 --topic 主題名

  例如:./bin/kafka-console-producer.sh --broker-list 47.105.137.93:9092 --topic xiaocaijishu

  5.消費訊息./bin/kafka-console-consumer.sh --bootstrap-server Kafka伺服器IP:9092 --consumer-property group.id=消費組名稱 --topic 主題名

  例如: ./bin/kafka-console-consumer.sh --bootstrap-server 47.105.137.93:9092 --consumer-property group.id=xiaocaiGroup --topic xiaocaijishu

  6.檢視現有消費組 ./bin/kafka-consumer-groups.sh --bootstrap-server Kafka伺服器IP:9092 --list

   例如:./bin/kafka-consumer-groups.sh --bootstrap-server 47.105.137.93:9092 --list

 

 

最進弄了一個公眾號,小菜技術,歡迎大家的加入

 

 

 

&n