(一)什么是Kafka
Kafka是一個分布式的基于發布/訂閱模式的訊息佇列,同時它又是一個分布式的事件流平臺,既可作為訊息佇列,又可作為資料管道、流分析的應用,目前Kafka的最大應用還是訊息佇列,
市面上主流的訊息佇列有RabbitMQ,ActiveMQ、Kafka等等,其中RabbitMQ,ActiveMQ這些主要是Java應用中的佇列,而Kafka主要在大資料場景下使用,
訊息佇列主要應用場景有如下幾種:削峰、限流、解耦、異步通信等,
(二)訊息佇列的實作模式
訊息佇列的實作主要有兩種模式,一種叫點對點模式:生產者將訊息發送到佇列中后,消費者從佇列中取出并且消費訊息,這種模式保證一個訊息只會被一個消費者消費一次,不可以重復訊息,

第二種是發布/訂閱模式,也就是Kafka所使用的模式,在發布/訂閱模式中,佇列中存在多個topic主題,生產者將訊息發送到佇列的topic中,消費者可以訂閱某個topic消費資料,并且消費者消費資料之后,不會洗掉資料,

(三)Kafka的架構設計
前面講到Kafka主要用于大資料環境,那避免不了的要接觸海量的資料,當遇到TB級別的資料時,目前最優的設計架構是分而治之,也就是將資料分散到不同的機器上去,Kafka就應用了這樣的設計方式,
Kafka集群會將一個Topic分為多個partition(磁區),每個Topic還可以指定副本的數量,并分配到不同的機器中,同時為了提高消費者的消費能力,運用消費組的方式,使得消費組中的消費者并行消費,為了提高可靠性,采用副本的方式保證可用性,通過Zookeeper等方式記錄配置資訊,

(四)Kafka的快速安裝
kafka的配置資訊默認存放在zookeeper中,因此需要提前將zookeeper安裝完成并啟動,不然kafka會報連接失敗,
首先是Kafka的下載,我這里選擇的是kafka3.0,對應的安裝包名為:kafka_2.13-3.0.0.tgz,下載地址如下:
https://downloads.apache.org/kafka/3.0.0/
下載完成后將檔案上傳至linux服務器,接下來就可以開始安裝了
tar -xzf kafka_2.13-3.0.0.tgz
mv kafka_2.13-3.0.0 kafka
解壓完成后修改一下相應的組態檔,首先需要對kafka服務的配置進行修改,進入kafka/config,修改server.properties,主要修改一下資料的存放地址,默認log.dirs的地址是/tmp下的路徑,修改為自定義的目錄下、另外將zookeeper的地址改成自己的地址,
log.dirs=/usr/local/kafka/datas
zookeeper.connect=localhost:2181
接著在kafka目錄下啟動kafka:
./bin/kafka-server-start.sh -daemon ./config/server.properties
在kafka/logs目錄下查看server.log,如果提示started,則表示啟動成功,不然就根據錯誤的原因重新修改配置或命令,

(五)Kafka的命令列操作
Kafka在結構上可以分為生產者、消費者和服務本身,這一節主要介紹Kafka自身的kafka-topics.sh一些命令列操作,常用的命令列引數通過表格的形式給出
| 引數 | 描述 |
|---|---|
| –boostrap-server | 連接Kafka |
| –topic | 操作的topic名稱 |
| –create | 創建topic |
| –delete | 洗掉topic |
| –alter | 修改topic |
| –list | 查看所有主題 |
| –describe | 查看主題詳細描述 |
| –partitions | 設定磁區的數量 |
| –replication-factor | 設定磁區的副本數 |
5.1 創建Topic
使用下面的命令可以創建一個名為testTopic,磁區數為1,副本數為1的Topic
./bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --topic testTopic --create --partitions 1 --replication-factor 1
5.2 查看Topic
–list 可以查看所有的Topic,–describe 可以查看某個topic的詳細資訊:
./bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --list
./bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --topic testTopic --describe
5.3 洗掉Topic
洗掉的操作和上面的寫法一致:
./bin/kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --topic testTopic --delete
5.4 簡單的訊息生產與消費
創建完Topic之后可以簡單地對訊息進行生產和消費,創建完一個Topic之后,通過生產者的命令列發送一條訊息:
./bin/kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092 --topic testTopic
接著可以輸入一些訊息,比如輸入hello world
在另一個會話中使用消費者的命令列消費訊息:
./bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic testTopic --from-beginning
(六)總結
本文主要介紹了Kafka是什么、Kafka的架構、Kafka的安裝和基本使用,接下來會有更多有關kafka的文章,我是魚仔,我們下期再見
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/432163.html
標籤:其他
下一篇:實時計算知識,最詳細的整理
