日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Apache Kafka是一種分布式事件存儲和流處理平臺。該項目旨在提供一個統一的、高吞吐量、低延遲的平臺,用于處理實時數據流。

•Kafka可以通過Kafka Connect連接到外部系統(用于數據導入/導出),并提供Kafka Streams庫用于流處理應用程序。•它有許多用例,包括分布式日志記錄、流處理、數據集成和發布/訂閱消息傳遞。•Kafka是一個數據流系統,允許開發人員實時響應新事件的發生。•Kafka的架構由存儲層和計算層組成。存儲層旨在高效存儲數據,并且是一個分布式系統,如果存儲需求隨時間增長,可以輕松地擴展系統以適應增長。

計算層由四個核心組件組成:

1.生產者(Producer)2.消費者(Consumer)3.流處理(Streams)4.連接器(Connectors)API,使得Kafka可以在分布式系統中擴展應用程序。

1. 生產者和消費者API: Kafka強大的應用程序層的基礎是用于訪問存儲的兩個基本API,即用于寫入事件的生產者API和用于讀取事件的消費者API。在這兩個API之上構建了用于集成和處理的API。

2. Kafka Connect: Kafka Connect建立在生產者和消費者API之上,提供了一種將數據在Kafka和外部系統之間集成的簡單方法。源連接器從外部系統中獲取數據并將其發送到Kafka主題。接收器連接器從Kafka主題獲取數據并將其寫入外部系統。

3. Kafka Streams: 用于處理到達的事件的Kafka Streams是一個JAVA庫,建立在生產者和消費者API之上。Kafka Streams允許您執行實時流處理、強大的轉換和事件數據的聚合。

基本概念

消息(Message)

•消息是信息的記錄。每條消息都有一個可選的鍵,用于將消息路由到適當的分區,以及必需的值,即實際的信息。消息的鍵和值都是字節數組。

Kafka主題(Kafka Topics)

•主題是事件的日志。•Apache Kafka的最基本的組織單元是主題,類似于關系數據庫中的表。•您可以創建不同的主題來保存不同類型的事件,并創建不同的主題來保存過濾和轉換后的同一類型的事件。

重要屬性:

•首先,它們是追加寫入的:當您將新消息寫入日志時,它總是追加到末尾。•其次,它們只能通過在日志中尋找任意偏移量來進行讀取,然后按順序掃描日志條目進行讀取。•第三,日志中的事件是不可變的 - 一旦某件事發生,幾乎不可能撤消它。•日志本質上也是持久的。傳統的企業消息系統具有主題和隊列,用于臨時存儲消息以在源和目標之間進行緩沖。•每個主題可以配置為在達到一定年齡后過期數據。

Kafka分區(Kafka Partitioning)

•為了在主題中分布事件的存儲和處理,Kafka使用分區的概念。一個主題由一個或多個分區組成,這些分區可以存在于Kafka集群中的不同節點上。•分區是Kafka事件的主要存儲單元,盡管在分層存儲(Tiered Storage)中,一些事件存儲被移出了分區。•分區也是并行處理的主要單元。可以通過同時寫入多

個分區來并行地將事件寫入主題。

•同樣,消費者可以通過每個消費者實例從不同的分區讀取,將其工作負載分散開來。如果只使用一個分區,只能有效地使用一個消費者實例。

分區工作原理:

•將主題分割為分區后,我們需要一種方法來決定將消息寫入哪個分區。通常情況下,如果消息沒有鍵,則后續消息將循環分布在主題的所有分區中。•例如,如果您正在生成與同一客戶關聯的所有事件,使用客戶ID作為鍵可以確保來自給定客戶的所有事件始終按順序到達。

Kafka Broker

•從物理基礎設施的角度來看,Apache Kafka由一組稱為Broker的機器網絡組成。•它們是獨立的機器,每臺機器上運行一個Kafka broker進程。•每個Broker托管一些分區并處理將新事件寫入這些分區或從這些分區讀取事件的傳入請求。Broker還處理分區之間的復制。

集群(Cluster)

•Broker作為集群的一部分運行,共享負載并提供容錯能力。

偏移量(Offset)

•每條消息通過主題、所屬分區和偏移量號唯一標識。偏移量是一個不斷遞增的整數,以唯一地標識消息在給定主題和分區中。在分區內,消息按偏移量號進行排序。

復制(Replication)

•數據復制是Kafka的一個關鍵功能,它使得Kafka能夠提供高持久性和可用性。我們可以在主題級別啟用復制。•創建新主題時,可以指定復制因子,然后該主題的每個分區將被多次復制。•這個數字被稱為復制因子。使用復制因子N,通常情況下,我們可以容忍N-1個故障,而不會丟失數據,并保持可用性。•每次讀寫到分區時,都經過主分區(leader)。•只有當所有同步副本將消息寫入其預寫日志時,消息才被視為已提交。•生產者可以單獨配置確認策略。

Kafka生產者(Producers)

•生產者庫的API界面相當輕量級:在Java中,有一個稱為KafkaProducer的類,您可以使用它連接到集群。•從表面上看,這是與生產消息有關的所有API界面。在幕后,該庫管理連接池、網絡緩沖區、等待代理確認消息、在必要時重新傳輸消息等一系列細節,應用程序程序員不需要關心這些細節。

消費者(Consumers)

•使用消費者API與生產者類似。您使用一個稱為KafkaConsumer的類來連接到集群。•首先,Kafka與傳統消息隊列不同之處在于讀取消息不會將其銷毀;•實際上,在Kafka中,許多消費者從一個主題中讀取是很正常的。

Kafka Connect

•一方面,Kafka Connect是一種可插拔連接器的生態系統,另一方面,它是一個客戶端應用程序。作為客戶端應用程序,Connect是一個在與Kafka brokers獨立的硬件上運行的服務器進程。

Kafka Streams

•Kafka Streams是一個Java API,為您提供了對流處理的所有計算原語的便捷訪問:過濾、分組、聚合、連接等,使您不必在消費者API之上編寫框架代碼來執行所有這些操作。•它還提供對由流處理計算產生的可能大量的狀態的支持。

流處理中的事件?

•事件是發生的事情的記錄,同時提供有關發生的事情的信息。事件的示例包括客戶訂單、付款、網站上的點擊或傳感器讀數。•事件記錄由時間戳、鍵、值和可選的標頭組成。事件有效負載通常存儲在值中,鍵是可選的。

Kafka持久性

•發布的每批消息都存儲在分區的活動日志段中,其格式與生產者發布的格式完全相同。消息格式在生產者、消費者和代理之間保持一致,消除了序列化和反序列化的開銷。•Kafka使用頁面緩存進行讀寫。所有讀取將直接從頁面緩存中進行,寫入首先應用于頁面緩存,然后定期同步。

日志壓縮

•Kafka主題的保留策略可以配置為“壓縮”或“刪除”。刪除根據日志保留字節或日志保留時間段清除舊的段文件。•如果將保留策略配置為壓縮,Kafka只會保留每個消息鍵的最新消息。如果

我們正在獲取與給定鍵相關的許多更新,并且只對最新消息感興趣,這將非常有用。例如,用戶更新事件。

領導者選舉

•當代理崩潰時,它無法向Zookeeper發送心跳。Zookeeper的會話超時,然后通知集群控制器代理故障的情況。集群控制器獲取代理是領導者的所有分區,并選擇ISR中的下一個條目并將其提升為領導者。

分享到:
標簽:Kafka
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定