成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kafka:Kafka架構以及應用場景

開發 架構
集群中一個分區屬于一個broker,該broker稱為分區首領。 一個分區可以分配給多個broker,此時會發生分區復制。 分區的復制提供了消息冗余,高可用。副本分區不負責處理消息的讀寫。

一、Kafka介紹

Kafka是最初由Linkedin公司開發,是一個分布式、分區的、多副本的、多生產者、多訂閱者,基于 zookeeper協調的分布式日志系統(也可以當做MQ系統),常見可以用于web/nginx日志、訪問日志, 消息服務等等,Linkedin于2010年貢獻給了Apache基金會并成為頂級開源項目。

主要應用場景是:日志收集系統和消息系統。

Kafka主要設計目標如下:

  • 以時間復雜度為O(1)的方式提供消息持久化能力,即使對TB級以上數據也能保證常數時間的訪 問性能。
  • 高吞吐率。即使在非常廉價的商用機器上也能做到單機支持每秒100K條消息的傳輸。
  •  支持Kafka Server間的消息分區,及分布式消費,同時保證每個partition內的消息順序傳輸。
  • 同時支持離線數據處理和實時數據處理。
  • 支持在線水平擴展。

有兩種主要的消息傳遞模式:點對點傳遞模式、發布-訂閱模式。大部分的消息系統選用發布-訂閱 模式。

Kafka就是一種發布-訂閱模式。 對于消息中間件,消息分推拉兩種模式。Kafka只有消息的拉取,沒有推送,可以通過輪詢實現消息的推送。

1. Kafka在一個或多個可以跨越多個數據中心的服務器上作為集群運行。

2. Kafka集群中按照主題分類管理,一個主題可以有多個分區,一個分區可以有多個副本分區。

3. 每個記錄由一個鍵,一個值和一個時間戳組成。

Kafka具有四個核心API:

1. Producer API:允許應用程序將記錄流發布到一個或多個Kafka主題。

2. Consumer API:允許應用程序訂閱一個或多個主題并處理為其生成的記錄流。

3. Streams API:允許應用程序充當流處理器,使用一個或多個主題的輸入流,并生成一個或多個輸出主題的輸出流,從而有效地將輸入流轉換為輸出流。

4. Connector API:允許構建和運行將Kafka主題連接到現有應用程序或數據系統的可重用生產者 或使用者。例如,關系數據庫的連接器可能會捕獲對表的所有更改。

二、Kafka優勢

1. 高吞吐量:單機每秒處理幾十上百萬的消息量。即使存儲了許多TB的消息,它也保持穩定的性 能。

2. 高性能:單節點支持上千個客戶端,并保證零停機和零數據丟失。

3. 持久化數據存儲:將消息持久化到磁盤。通過將數據持久化到硬盤以及replication防止數據丟 失。 1. 零拷貝 2. 順序讀,順序寫 3. 利用Linux的頁緩存

4. 分布式系統,易于向外擴展。所有的Producer、Broker和Consumer都會有多個,均為分布式 的。無需停機即可擴展機器。多個Producer、Consumer可能是不同的應用。

5. 可靠性 - Kafka是分布式,分區,復制和容錯的。

6. 客戶端狀態維護:消息被處理的狀態是在Consumer端維護,而不是由server端維護。當失敗 時能自動平衡。

7. 支持online和offline的場景。

8. 支持多種客戶端語言。Kafka支持Java、.NET、PHP、Python等多種語言。

三、Kafka應用場景

  • 日志收集:一個公司可以用Kafka可以收集各種服務的Log,通過Kafka以統一接口服務的方式開放 給各種Consumer;
  • 消息系統:解耦生產者和消費者、緩存消息等;
  • 用戶活動跟蹤:Kafka經常被用來記錄Web用戶或者App用戶的各種活動,如瀏覽網頁、搜索、點擊 等活動,這些活動信息被各個服務器發布到Kafka的Topic中,然后消費者通過訂閱這些Topic來做實時的 監控分析,亦可保存到數據庫;
  • 運營指標:Kafka也經常用來記錄運營監控數據。包括收集各種分布式應用的數據,生產各種操作的 集中反饋,比如報警和報告;
  •  流式處理:比如Spark Streaming和Storm。

四、Kafka基礎架構

消息和批次

Kafka的數據單元稱為消息。可以把消息看成是數據庫里的一個“數據行”或一條“記錄”。消息由字節 數組組成。 消息有鍵,鍵也是一個字節數組。當消息以一種可控的方式寫入不同的分區時,會用到鍵。 為了提高效率,消息被分批寫入Kafka。批次就是一組消息,這些消息屬于同一個主題和分區。 把消息分成批次可以減少網絡開銷。批次越大,單位時間內處理的消息就越多,單個消息的傳輸時 間就越長。批次數據會被壓縮,這樣可以提升數據的傳輸和存儲能力,但是需要更多的計算處理。

模式

消息模式(schema)有許多可用的選項,以便于理解。如JSON和XML,但是它們缺乏強類型處理 能力。Kafka的許多開發者喜歡使用Apache Avro。Avro提供了一種緊湊的序列化格式,模式和消息體分 開。當模式發生變化時,不需要重新生成代碼,它還支持強類型和模式進化,其版本既向前兼容,也向 后兼容。 數據格式的一致性對Kafka很重要,因為它消除了消息讀寫操作之間的耦合性。

主題和分區

Kafka的消息通過主題進行分類。主題可比是數據庫的表或者文件系統里的文件夾。主題可以被分為 若干分區,一個主題通過分區分布于Kafka集群中,提供了橫向擴展的能力。

生產者和消費者

生產者創建消息。消費者消費消息。 一個消息被發布到一個特定的主題上。 生產者在默認情況下把消息均衡地分布到主題的所有分區上:

1. 直接指定消息的分區

2. 根據消息的key散列取模得出分區

3. 輪詢指定分區。

消費者通過偏移量來區分已經讀過的消息,從而消費消息。 消費者是消費組的一部分。消費組保證每個分區只能被一個消費者使用,避免重復消費。

broker和集群

一個獨立的Kafka服務器稱為broker。broker接收來自生產者的消息,為消息設置偏移量,并提交 消息到磁盤保存。broker為消費者提供服務,對讀取分區的請求做出響應,返回已經提交到磁盤上的消 息。單個broker可以輕松處理數千個分區以及每秒百萬級的消息量。

每個集群都有一個broker是集群控制器(自動從集群的活躍成員中選舉出來)。 控制器負責管理工作:

  • 將分區分配給broker
  •  監控broker

集群中一個分區屬于一個broker,該broker稱為分區首領。 一個分區可以分配給多個broker,此時會發生分區復制。 分區的復制提供了消息冗余,高可用。副本分區不負責處理消息的讀寫。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2019-10-08 10:01:22

Kafka應用場景架構

2023-11-29 07:43:30

2024-05-11 12:47:16

Kafka場景.高性能

2023-11-28 08:20:25

2018-08-15 09:48:27

數據庫Redis應用場景

2023-10-24 17:14:52

Kafka分布式系統

2021-08-06 10:43:56

Kubernetes容器

2024-12-19 09:45:24

2024-08-23 16:04:45

2011-05-17 15:24:18

Shibboleth認證

2022-10-12 07:24:18

大文件哈希算法Hash

2020-04-07 14:20:10

RabbitMMySQL數據庫

2017-03-16 20:00:17

Kafka設計原理達觀產品

2024-08-30 17:14:34

2012-10-23 09:32:07

2024-05-28 08:31:46

2022-09-05 14:46:01

元宇宙區塊鏈人工智能

2021-12-24 10:24:10

零信任

2019-04-10 15:43:12

SDN場景網絡架構

2022-10-28 07:15:26

策略模式使用場景UML
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 女生羞羞网站 | 国产成人精品一区二区三区四区 | 一区二区三区免费 | 激情久久av一区av二区av三区 | 亚洲美女天堂网 | 亚洲视频1区 | 最新中文字幕第一页视频 | 国产精品久久二区 | 久久成人一区 | 国产成人精品一区二区三区 | 婷婷色国产偷v国产偷v小说 | 91私密视频 | 一级大黄色片 | 中文字幕高清av | 日本久久网 | 欧美日韩综合精品 | 日韩中文欧美 | 婷婷色婷婷 | 给我免费的视频在线观看 | 久久国产精品一区二区三区 | 日本精品一区二区 | 中文字幕一区在线观看视频 | 99久久婷婷国产综合精品电影 | 久久亚洲精品国产精品紫薇 | 成人久久网 | 午夜视频在线播放 | 真人女人一级毛片免费播放 | 黄网站涩免费蜜桃网站 | 一区二区三区四区国产 | 天天操精品视频 | 成人片免费看 | 日韩成人在线视频 | 久久久久久国产精品免费免费男同 | 精品国产一区二区三区久久久蜜月 | 欧美日韩一区二区三区四区五区 | 中文字幕 亚洲一区 | 国产激情一区二区三区 | 国产精品一区二区福利视频 | 九九久久国产 | 国产精品美女久久久久久免费 | 国产精品免费大片 |