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

 

 

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

 

 

 

 

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