分布式訊息系統之Kafka

2021-10-25 18:56:28 字數 1668 閱讀 1655

隨著疫情在國內得到了平穩控制,各個企業也逐漸開始招聘了,而跳槽的好時機,除了金三銀四之外,便是金九銀十啦。準備看機會的朋友們可以抓住這次機會,好好的準備簡歷,覆盤專案經歷,深入惡補每個知識點。今天我們要給大家補的知識點便是分布式訊息系統kafka

在網際網路海量資料、高併發高可用低延遲的要求下,使用訊息系統來進行資料的**、系統之間的解耦是必不可少的,學習kafka就先來看看kafka的典型使用場景。

接著我們再繼續介紹kafka的基本名詞概念,在kafka中有brokertopicpartitionsegmentproducerconsumer五個基本概念。所謂broker就是kafka節點,乙個伺服器例項,儲存訊息佇列資料;所謂topic就是訊息,比如購買商品後會有商品購買成功的推送,這就是一類資訊;所謂partition就是分組,乙個topic可以分為多個partition,比如購買商品後可按使用者地域進行訊息的推送,北京地域是乙個partition,上海地域是乙個partition;所謂segment就是分段,將partition分為多段,儲存訊息;所謂producer就是生產者,負責生產訊息;所謂consumer就是消費者,負責消費訊息。kafka工作的流程就是producer發布訊息,系統為每類資料建立乙個topic,在broker集群持久化和備份具體的kafka訊息,consumer訂閱topic進行消費訊息。

作為乙個開源軟體,kafka最重要的能力便是提供api。在kafka中有四大api:即生產者api消費者api流api聯結器api

作為乙個分布式訊息系統,kafka是如何實現分布式的呢?kafka需要與zookeeper一起使用才能對外提供分布式訊息系統能力。我們假設有這樣的乙個場景,在kafka集群中,有乙個很大的topic要處理。我們先把這個topic放在**伺服器broker1、broker2、broker3上,在broker1/2/3上分別包含分割槽partition1/2/3。當乙個broker啟動時,首先會向zookeeper註冊自己的broker、topic、partition資訊等meta元資訊。當消費者啟動時,也會向zookeeper節點註冊自己的資訊,監聽生產者的變化。那麼資料是如何分布各個節點呢?事實上每個節點的資料都會在整個集群進行複製,比如在broker1中每個分割槽中的資料都會複製乙份到該集群中的broker2、broker3,由broker1作為主節點對生產者和消費者提供資料,當broker1節點掛掉時,通過使用zookeeper工具在剩下的broker2、broker3中選舉出新的主節點對外提供服務。因此在kafka集群中所有的資料在每個broker節點都有,無論何時都保障了服務的高可用。

最後我們看看在kafka中如何保障資料的可靠性呢?

Kafka分布式訊息系統

什麼是apache kafka?系統應用 使用者的活動資料 請求 資料 互動資料 執行維護資料如效能 監測 伺服器cpu 指標這些大量的資料都在無時無刻的產生,kafka 便是有著一套成熟的訊息處理方案的訊息系統,支援 高吞吐量的 分布式發布訂閱訊息 模式,它可以處理消費者規模的 中的所有動作流資料...

分布式訊息系統Kafka初步

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

分布式訊息系統Kafka初步

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