(01)kafka以及訊息系統的基本介紹

2022-06-15 05:15:17 字數 1726 閱讀 4231

1、kafka簡介

apache kafka是分布式發布-訂閱訊息系統。它最初由linkedin公司開發,用作linkedin的活動流(activity stream)和運營資料處理管道(pipeline)的基礎。之後貢獻給apache**會成為apache的乙個頂級專案。kafka是一種快速、可擴充套件的、設計內在就是分布式的,分割槽的和可複製的提交日誌服務。

2、舉例說明訊息系統

什麼是訊息系統,下面以12306**和電商**舉例說明。

12306**或者電商**要把訊息傳送給使用者,無論是以簡訊方式、郵件方式或者其他方式,都會通過某種介質來完成,這種介質就是訊息系統。傳送訊息的**是生產者,生產者把訊息傳送給訊息系統,訊息系統通過自己的服務匯流排選擇傳送方式,最終傳送給使用者。消費訊息的某種方式即為消費者。kafka對應圖中的訊息系統,kafka中的broker就是服務匯流排。

3、訊息佇列分類:

(1)點對點(queue)

訊息的生產者將訊息傳送到queue中,然後訊息的消費者從queue中取出訊息並且消費,訊息被消費後,queue中不再儲存,所以訊息的消費者不可能消費到已經被消費的訊息。queue支援存在多個消費者,但對於乙個訊息而言,只有乙個消費者可以消費

(2)發布與訂閱(topic)

訊息生產者(發布)將訊息發布到topic中,同時有多個訊息消費者(訂閱)消費該訊息。和點對點方式不同,發布到topic的訊息會被所有訂閱者消費。kafka處理的是topic型別的訊息

注意:點對點的方式中可以有多個消費者,但是乙個訊息只能被乙個消費者消費。發布與訂閱中,消費存在每乙個主題中,每個主題中的訊息可能被乙個或者多個消費者消費。

4、kafka作用

監測運營資料,如核心系統效能指標資料(cpu利用率,磁碟利用率,io使用率等)

日誌收集中心,如收集應用產生的日誌

訊息系統,如12306**,電商**傳送通知

這些資料的特點:資料不可變,資料量龐大,需實時處理。

5、kafka的基本架構和概念

(1)基本結構

生產者產生的訊息通過kafka集**送給消費者,集群中包括多台伺服器,即多個kafka服務,每個kafka服務可以包含乙個或者多個broker。kafka集群中的所有服務要註冊到zookeeper集群中,如果某個kafka服務宕掉,zookeeper可以將其資訊同步到其他服務中。

(2)基本概念

topic:特指kafka處理的訊息源

partition(分割槽):topic物理上的分組。乙個topic可以有多個partition,每個partition是乙個有序的佇列

message:訊息,通訊的基本單位

producer:生產者。向kafka的乙個topic發布訊息的過程叫做生產

consumer:消費者。訂閱topic並處理其發布的訊息的過程叫做消費

broker:快取**,kafka集群中的一台或者多台伺服器

強大的分布式訊息系統kafka

在我們大量使用分布式資料庫 分布式計算集群的時候,是否會遇到這樣的一些問題 l 我想分析一下使用者行為 pageviews 以便我能設計出更好的廣告位 l 有些資料,我覺得存資料庫浪費,直接存硬碟又怕到時候操作效率低。這個時候,我們就可以用到分布式訊息系統了。雖然上面的描述更偏向於乙個日誌系統,但確...

RabbitMQ的應用場景以及基本原理介紹

訂單系統和庫存系統高耦合.引入訊息佇列 訂單系統 使用者下單後,訂單系統完成持久化處理,將訊息寫入訊息佇列,返回使用者訂單下單成功。庫存系統 訂閱下單的訊息,獲取下單訊息,進行庫操作。就算庫存系統出現故障,訊息佇列也能保證訊息的可靠投遞,不會導致訊息丟失 馬雲這下高興了 佇列和交換機有乙個建立時候指...

Linux 系統基本命令以及vim的基本操作

命令格式 命令 選項 引數 開機命令 shutdown r now 或 reboot shutdown h now 或 poweroff 或 halt最常用的命令及操作 ifconfig 檢視或配置網絡卡資訊 ip cd change directory 切換工作目錄 表示剛才的工作目錄 表示使用者...