文章目錄
- 基本概念
- kafka的安裝
- kafka的使用
- 參考文章
Kafka是一個分布式發布訂閱的訊息系統,
基本概念
- topic(主題),資料所屬類別
- partition(磁區),一個topic可以劃分為多個partition
- offset,每個partition都有一個偏移量
- 副本,是partition的備份,僅用于防止資料丟失,不會被消費者消費,另外,單機版的kafka不能給patition設定副本,因為副本需分布在不同的機器上,
- broker(kafka服務器)
kafka集群包含一個或多個服務器,一個服務器就稱之為一個broker,
每個broker用于存盤topic中的資料,如果一個topic有多個partition,那么就有多個broker,每個broker用于存盤一個partition中的資料,從而維護整個系統的負載均衡, - producer,訊息的生產者,即資料的發布者,producer把訊息發布到topic里,broker接收到訊息并把訊息追加到topic的partition里,
- customer,消費者,即資料的接收者,
kafka的安裝
- 從官網下載版本:kafka_2.13-2.8.0.tgz

- 將壓縮包kafka_2.13-2.8.0.tgz上傳至linux服務器的
/usr/local目錄下 - 解壓kafka_2.13-2.8.0.tgz至當前目錄:
tar -zxvf kafka_2.13-2.8.0.tgz-x,同--extract,extract files from an archive,-f,--force-local,archive file is local even if it has a colon,-xf,extract all files from an archive,-z,同--unzip,-v,同--verbose,verbosely list files processed,詳細列出,其中, verbosely是冗長的意思,
- 修改組態檔:
config/server.properties- broker.id
broker是kafka集群中的服務器,id則是服務器的唯一標識,
單機版本中,可以將broker.id可以設定為任意整數,比如broker.id=1, - log.dirs,kafka的日志目錄
新建目錄kafka_log,且與kafka_2.13-2.8.0同目錄,將log.dirs設定為/usr/local/kafka_log,
- broker.id
kafka的使用
- 啟動ZooKeeper
[root@localhost kafka_2.13-2.8.0]# bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
- 啟動kafka broker
[root@localhost kafka_2.13-2.8.0]# bin/kafka-server-start.sh config/server.properties
- 查看行程
[root@localhost kafka_2.13-2.8.0]# jps
4051 Jps
3398 Kafka
3292 QuorumPeerMain
可以看到有兩個行程運行在終端,其中,QuorumPeerMain是ZooKeeper的行程,另一個是Kafka行程,
- 創建一個topic
[root@localhost kafka_2.13-2.8.0]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic hello-kafka
Created topic hello-kafka.
創建了一個名為hello-kafka的topic,其中,包含一個partition(磁區)和一個replication-factor(副本因子),
注意,config/server.properties中有:
zookeeper.connect=localhost:2181
- 列出kafka服務器上的topics
[root@localhost kafka_2.13-2.8.0]# bin/kafka-topics.sh --list --zookeeper localhost:2181
hello-kafka
- 啟動消費者以接收訊息
[root@localhost kafka_2.13-2.8.0]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic hello-kafka --from-beginning
- 啟動生產者以發送訊息
[root@localhost kafka_2.13-2.8.0]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic hello-kafka

- 查看topic的相關資訊
[root@localhost kafka_2.13-2.8.0]# bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic hello-kafka
Topic: hello-kafka TopicId: P-bZ-KwWTuejAyLrnXAMXg PartitionCount: 1 ReplicationFactor: 1 Configs:
Topic: hello-kafka Partition: 0 Leader: 1 Replicas: 1 Isr: 1
參考文章
kafka的基本操作
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293308.html
標籤:其他
下一篇:Java專案:在線淘房系統(租房、購房)(java+SpringBoot+Redis+MySQL+Vue+SpringSecurity+JWT+ElasticSearch+WebSocket)
