kafka原理和集群配置

2022-06-08 04:15:10 字數 2648 閱讀 9790

可靠性:kafka是分布式、分割槽、複製和容錯的

可擴充套件性:kafka訊息傳遞系統輕鬆縮放,無需停機

耐用性:kafka使用分布式提交日誌,這意味著訊息會盡可能快地保留在磁碟上,因此它是持久的

高效能:kafka對於發布和訂閱訊息都具有高吞吐量,kafka每秒可以生產約25萬訊息(50mb),每秒處理55萬訊息(110mb)

永續性、可靠性:訊息被持久化到本地磁碟,並且支援資料備份,防止資料丟失

kafka的使用場景:

日誌收集:乙個公司可以用kafka收集各種服務的log,可以通過logstash(占用記憶體小)或flume(占用記憶體大)採集,通過kafka以統一介面服務的方式開放給各種consumer,例如hadoop、hbase、solr等

訊息系統:解耦和生產者和消費者、快取訊息等

運營指標:kafka也經常用來記錄運營監控資料,包括收集各種分布式應用的資料,生產各種操作的集中反饋,比如報警和報告

流式處理:比如spark和streaming和storm

時間源什麼是訊息佇列?

什麼是topic、brokers、producer、consumer?

kafka中的術語

broker:中間的kafka cluster,儲存訊息,是由多個server組成的集群

topic:kafka給訊息提供的分類方式,broker用來儲存不同topic的訊息資料

producer:往broker中某個topic裡面生產資料

consumer:從broker中某個topic獲取資料

topic:屬於特定型別的訊息流稱為topic,資料儲存在topic中,topic可以理解為乙個表

partition(分割槽):topic可能有許多分割槽,因此它可以處理任意數量的資料,如果乙個分割槽被乾掉了,其他的分割槽還在,資料沒有完全丟失

partition offset(分割槽偏移):每個分割槽訊息具有稱為offset的唯一序列標識

brokers(經紀人):每個kafka例項(server),一台kafka伺服器就是乙個broker,乙個集群由多個broker組成,乙個broker可以容納多個topic

producers(生產者):生產者是傳送給乙個或多個kafka主題的訊息的發布者,生產者向kafka經紀人傳送資料,每當生產者將訊息發布給**時,**只需將訊息附加到最後乙個段檔案,實際上該訊息將被附加到分割槽,生產者還可以向他們選擇的分割槽傳送訊息

生產者向kafka推送資料,消費者來消費

consumers(消費者):consumers從經紀人處讀取資料,消費者訂閱乙個或多個主題,並通過從**中提取資料來使用已發布的訊息

consumer group:乙個consumer group包含多個consumer,這個是預先在配置檔案中配置好的,各個consumer(consumer執行緒)可以組成乙個組(consumer group),partition中的每個message只能被組(consumer group)中的乙個consumer(consumer執行緒)消費,如果乙個message可以被多個consumer(consumer執行緒)消費的話,那麼這些consumer必須在不同的組

kafka效能問題:

除磁碟io之外,我們還需要考慮網路io,這直接關係到kafka的吞吐量問題,kafka並沒有提供太多高超的技巧,對於producer端,可以將訊息buffer起來,當訊息的條數達到一定閾值時,批量傳送給broker

kafka

集群配置:

nohup bin/kafka-server-start.sh config/server.properties &,出現如下內容:

游標下面沒有[root@besttest kafka]#,證明kafka沒有起來,可能是記憶體不足,可以用ps -ef|grep kafka或者tail -f nohup.out看一下,如果kafka起來以後,可以執行下面的操作,[root@besttest kafka]#bin/kafka-topics.sh --zookeeper 192.168.1.10:2181 --list

測試kafka連線的命令:

kafka-console-producer.sh --broker-list localhost:9092 --topic test 生產者傳送訊息,消費者可以收到

kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

Kafka集群配置

1 kafka概念 topic kafka 按照topic 分類來維護訊息,每個topic可以配置多個partition 分割槽 每個分割槽只能被乙個消費者消費,每個partition對應乙個commit log檔案 producer 我們將發布 publish 訊息到topic的程序稱之為生產者 ...

單機部署和配置Kafka集群

前言 需要說明的幾個問題 1 kafka依賴zookeeper,請先安裝zookeeper。2 zookeeper依賴j a環境,請先安裝jdk。3 zookeeper單機集群規劃 3個節點,埠號分別是2181 2812 2813。4 zookeeper單機集群關鍵在於隔離各節點的埠 資料。各個節點...

Kafka詳解二 如何配置Kafka集群

kafka集群配置比較簡單,為了更好的讓大家理解,在這裡要分別介紹下面三種配置 1.首先啟動zookeeper服務 kafka本身提供了啟動zookeeper的指令碼 在kafka bin 目錄下 和zookeeper配置檔案 在kafka config 目錄下 首先進入kafka的主目錄 可通過 ...