bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

kafka入門基礎(chǔ)知識有哪些

這篇文章主要介紹“kafka入門基礎(chǔ)知識有哪些”,在日常操作中,相信很多人在kafka入門基礎(chǔ)知識有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”kafka入門基礎(chǔ)知識有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

羅源網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),羅源網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為羅源千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的羅源做網(wǎng)站的公司定做!

1.1 概念和基本架構(gòu)

1.1.1 Kafka介紹

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

主要應(yīng)用場景是:日志收集系統(tǒng)和消息系統(tǒng)。
Kafka主要設(shè)計目標(biāo)如下:
	  以時間復(fù)雜度為O(1)的方式提供消息持久化能力,即使對TB級以上數(shù)據(jù)也能保證常數(shù)時間的訪問性能。
	  高吞吐率。即使在非常廉價的商用機器上也能做到單機支持每秒100K條消息的傳輸。
	  支持Kafka Server間的消息分區(qū),及分布式消費,同時保證每個partition內(nèi)的消息順序傳輸。
*	  同時支持離線數(shù)據(jù)處理和實時數(shù)據(jù)處理。
	  支持在線水平擴展

kafka入門基礎(chǔ)知識有哪些

  • 有兩種主要的消息傳遞模式:點對點傳遞模式、發(fā)布-訂閱模式。大部分的消息系統(tǒng)選用發(fā)布-訂閱模式。Kafka就是一種發(fā)布-訂閱模式。

  • 對于消息中間件,消息分推拉兩種模式。Kafka只有消息的拉取,沒有推送,可以通過輪詢實現(xiàn)消息的推送

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

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

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

Kafka具有四個核心API:

    1. Producer API:允許應(yīng)用程序?qū)⒂涗浟靼l(fā)布到一個或多個Kafka主題。

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

    1. Streams API:允許應(yīng)用程序充當(dāng)流處理器,使用一個或多個主題的輸入流,并生成一個或多個輸出主題的輸出流,從而有效地將輸入流轉(zhuǎn)換為輸出流。

    1. Connector API:允許構(gòu)建和運行將Kafka主題連接到現(xiàn)有應(yīng)用程序或數(shù)據(jù)系統(tǒng)的可重用生產(chǎn)者或使用者。例如,關(guān)系數(shù)據(jù)庫的連接器可能會捕獲對表的所有更改。

1.1.2 Kafka優(yōu)勢

1. 高吞吐量:單機每秒處理幾十上百萬的消息量。即使存儲了許多TB的消息,它也保持穩(wěn)定的
性能。
2. 高性能:單節(jié)點支持上千個客戶端,并保證零停機和零數(shù)據(jù)丟失。
3. 持久化數(shù)據(jù)存儲:將消息持久化到磁盤。通過將數(shù)據(jù)持久化到硬盤以及replication防止數(shù)據(jù)丟失。
	1. 零拷貝
	2. 順序讀,順序?qū)?
	3. 利用Linux的頁緩存
4. 分布式系統(tǒng),易于向外擴展。所有的Producer、Broker和Consumer都會有多個,均為分布
式的。無需停機即可擴展機器。多個Producer、Consumer可能是不同的應(yīng)用。
5. 可靠性 - Kafka是分布式,分區(qū),復(fù)制和容錯的。
6. 客戶端狀態(tài)維護:消息被處理的狀態(tài)是在Consumer端維護,而不是由server端維護。當(dāng)失敗
時能自動平衡。
7. 支持online和offline的場景。
8. 支持多種客戶端語言。Kafka支持Java、.NET、PHP、Python等多種語言。

1.1.3 Kafka應(yīng)用場景

日志收集:一個公司可以用Kafka可以收集各種服務(wù)的Log,通過Kafka以統(tǒng)一接口服務(wù)的方式開放給各種Consumer;

消息系統(tǒng):解耦生產(chǎn)者和消費者、緩存消息等;

用戶活動跟蹤:Kafka經(jīng)常被用來記錄Web用戶或者App用戶的各種活動,如瀏覽網(wǎng)頁、搜索、點擊等活動,這些活動信息被各個服務(wù)器發(fā)布到Kafka的Topic中,然后消費者通過訂閱這些Topic來做實時的監(jiān)控分析,亦可保存到數(shù)據(jù)庫;

運營指標(biāo):Kafka也經(jīng)常用來記錄運營監(jiān)控數(shù)據(jù)。包括收集各種分布式應(yīng)用的數(shù)據(jù),生產(chǎn)各種操作的集中反饋,比如報警和報告;

流式處理:比如Spark Streaming和Storm。

1.1.4 基本架構(gòu)

消息和批次
Kafka的數(shù)據(jù)單元稱為消息。可以把消息看成是數(shù)據(jù)庫里的一個“數(shù)據(jù)行”或一條“記錄”。消息由字節(jié)數(shù)組組成。

消息有鍵,鍵也是一個字節(jié)數(shù)組。當(dāng)消息以一種可控的方式寫入不同的分區(qū)時,會用到鍵。

為了提高效率,消息被分批寫入Kafka。批次就是一組消息,這些消息屬于同一個主題和分區(qū)。

把消息分成批次可以減少網(wǎng)絡(luò)開銷。批次越大,單位時間內(nèi)處理的消息就越多,單個消息的傳輸時間就越長。批次數(shù)據(jù)會被壓縮,這樣可以提升數(shù)據(jù)的傳輸和存儲能力,但是需要更多的計算處理。

模式

消息模式(schema)有許多可用的選項,以便于理解。如JSON和XML,但是它們?nèi)狈婎愋吞幚砟芰Αafka的許多開發(fā)者喜歡使用Apache Avro。Avro提供了一種緊湊的序列化格式,模式和消息體分開。當(dāng)模式發(fā)生變化時,不需要重新生成代碼,它還支持強類型和模式進化,其版本既向前兼容,也向后兼容。

數(shù)據(jù)格式的一致性對Kafka很重要,因為它消除了消息讀寫操作之間的耦合性。

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

kafka入門基礎(chǔ)知識有哪些

生產(chǎn)者和消費者
生產(chǎn)者創(chuàng)建消息。消費者消費消息。
一個消息被發(fā)布到一個特定的主題上。
生產(chǎn)者在默認情況下把消息均衡地分布到主題的所有分區(qū)上:
	1. 直接指定消息的分區(qū)
	2. 根據(jù)消息的key散列取模得出分區(qū)
	3. 輪詢指定分區(qū)。
消費者通過偏移量來區(qū)分已經(jīng)讀過的消息,從而消費消息。
消費者是消費組的一部分。消費組保證每個分區(qū)只能被一個消費者使用,避免重復(fù)消費。

kafka入門基礎(chǔ)知識有哪些

broker和集群
  • 一個獨立的Kafka服務(wù)器稱為broker。broker接收來自生產(chǎn)者的消息,為消息設(shè)置偏移量,并提交消息到磁盤保存。broker為消費者提供服務(wù),對讀取分區(qū)的請求做出響應(yīng),返回已經(jīng)提交到磁盤上的消息。單個broker可以輕松處理數(shù)千個分區(qū)以及每秒百萬級的消息量。 kafka入門基礎(chǔ)知識有哪些

    每個集群都有一個broker是集群控制器(自動從集群的活躍成員中選舉出來)

    控制器負責(zé)管理工作: 將分區(qū)分配給broker 監(jiān)控broker

    集群中一個分區(qū)屬于一個broker,該broker稱為分區(qū)首領(lǐng)。

    一個分區(qū)可以分配給多個broker,此時會發(fā)生分區(qū)復(fù)制。

    分區(qū)的復(fù)制提供了消息冗余,高可用。副本分區(qū)不負責(zé)處理消息的讀寫。

1.1.5 核心概念

1.1.5.1 Producer
生產(chǎn)者創(chuàng)建消息。
該角色將消息發(fā)布到Kafka的topic中。broker接收到生產(chǎn)者發(fā)送的消息后,broker將該消息追加到
當(dāng)前用于追加數(shù)據(jù)的 segment 文件中。
一般情況下,一個消息會被發(fā)布到一個特定的主題上。
1. 默認情況下通過輪詢把消息均衡地分布到主題的所有分區(qū)上。
2. 在某些情況下,生產(chǎn)者會把消息直接寫到指定的分區(qū)。這通常是通過消息鍵和分區(qū)器來實現(xiàn)
的,分區(qū)器為鍵生成一個散列值,并將其映射到指定的分區(qū)上。這樣可以保證包含同一個鍵的
消息會被寫到同一個分區(qū)上。
3. 生產(chǎn)者也可以使用自定義的分區(qū)器,根據(jù)不同的業(yè)務(wù)規(guī)則將消息映射到分區(qū)。
1.1.5.2 Consumer
消費者讀取消息。
1. 消費者訂閱一個或多個主題,并按照消息生成的順序讀取它們。
2. 消費者通過檢查消息的偏移量來區(qū)分已經(jīng)讀取過的消息。偏移量是另一種元數(shù)據(jù),它是一個不
斷遞增的整數(shù)值,在創(chuàng)建消息時,Kafka 會把它添加到消息里。在給定的分區(qū)里,每個消息的
偏移量都是唯一的。消費者把每個分區(qū)最后讀取的消息偏移量保存在Zookeeper 或Kafka
上,如果消費者關(guān)閉或重啟,它的讀取狀態(tài)不會丟失。
3. 消費者是消費組的一部分。群組保證每個分區(qū)只能被一個消費者使用。
4. 如果一個消費者失效,消費組里的其他消費者可以接管失效消費者的工作,再平衡,分區(qū)重新分配。

kafka入門基礎(chǔ)知識有哪些

1.1.5.3 Broker
一個獨立的Kafka 服務(wù)器被稱為broker。
broker 為消費者提供服務(wù),對讀取分區(qū)的請求作出響應(yīng),返回已經(jīng)提交到磁盤上的消息。
	1. 如果某topic有N個partition,集群有N個broker,那么每個broker存儲該topic的一個partition。 
	2. 如果某topic有N個partition,集群有(N+M)個broker,那么其中有N個broker存儲該topic的
	一個partition,剩下的M個broker不存儲該topic的partition數(shù)據(jù)。
	3. 如果某topic有N個partition,集群中broker數(shù)目少于N個,那么一個broker存儲該topic的一個或多個partition。在實際生產(chǎn)環(huán)境中,盡量避免這種情況的發(fā)生,這種情況容易導(dǎo)致Kafka集群數(shù)據(jù)不均衡。


broker 是集群的組成部分。每個集群都有一個broker 同時充當(dāng)了集群控制器的角色(自動從集群
的活躍成員中選舉出來)。
控制器負責(zé)管理工作,包括將分區(qū)分配給broker 和監(jiān)控broker。
在集群中,一個分區(qū)從屬于一個broker,該broker 被稱為分區(qū)的首領(lǐng)。

kafka入門基礎(chǔ)知識有哪些

1.1.5.4 Topic
每條發(fā)布到Kafka集群的消息都有一個類別,這個類別被稱為Topic。
物理上不同Topic的消息分開存儲。
主題就好比數(shù)據(jù)庫的表,尤其是分庫分表之后的邏輯表。
1.1.5.5 Partition
  1. 主題可以被分為若干個分區(qū),一個分區(qū)就是一個提交日志。

  2. 消息以追加的方式寫入分區(qū),然后以先入先出的順序讀取。

  3. 無法在整個主題范圍內(nèi)保證消息的順序,但可以保證消息在單個分區(qū)內(nèi)的順序。

  4. Kafka 通過分區(qū)來實現(xiàn)數(shù)據(jù)冗余和伸縮性。

  5. 在需要嚴格保證消息的消費順序的場景下,需要將partition數(shù)目設(shè)為1。 kafka入門基礎(chǔ)知識有哪些

1.1.5.6 Replicas
Kafka 使用主題來組織數(shù)據(jù),每個主題被分為若干個分區(qū),每個分區(qū)有多個副本。那些副本被保存
在broker 上,每個broker 可以保存成百上千個屬于不同主題和分區(qū)的本。
副本有以下兩種類型:
首領(lǐng)副本
每個分區(qū)都有一個首領(lǐng)副本。為了保證一致性,所有生產(chǎn)者請求和消費者請求都會經(jīng)過這個副本。
跟隨者副本
首領(lǐng)以外的副本都是跟隨者副本。跟隨者副本不處理來自客戶端的請求,它們唯一的任務(wù)就是從首領(lǐng)那里復(fù)制消息,保持與首領(lǐng)一致的狀態(tài)。如果首領(lǐng)發(fā)生崩潰,其中的一個跟隨者會被提升為新首領(lǐng)。
1.1.5.7 Offset
生產(chǎn)者Offset
消息寫入的時候,每一個分區(qū)都有一個offset,這個offset就是生產(chǎn)者的offset,同時也是這個分區(qū)的最新最大的offset。
有些時候沒有指定某一個分區(qū)的offset,這個工作kafka幫我們完成。

kafka入門基礎(chǔ)知識有哪些

消費者Offset kafka入門基礎(chǔ)知識有哪些

這是某一個分區(qū)的offset情況,生產(chǎn)者寫入的offset是最新最大的值是12,而當(dāng)Consumer A進行消費時,從0開始消費,一直消費到了9,消費者的offset就記錄在9,Consumer B就紀錄在了11。等下一次他們再來消費時,他們可以選擇接著上一次的位置消費,當(dāng)然也可以選擇從頭消費,或者跳到最近的記錄并從“現(xiàn)在”開始消費。
1.1.5.8 副本
分區(qū)中的所有副本統(tǒng)稱為AR(Assigned Repllicas)。
AR=ISR+OSR
1.1.5.8.2 ISR
所有與leader副本保持一定程度同步的副本(包括Leader)組成ISR(In-Sync Replicas),ISR集
合是AR集合中的一個子集。消息會先發(fā)送到leader副本,然后follower副本才能從leader副本中拉取消
息進行同步,同步期間內(nèi)follower副本相對于leader副本而言會有一定程度的滯后。前面所說的“一定程
度”是指可以忍受的滯后范圍,這個范圍可以通過參數(shù)進行配置。
1.1.5.8.3 OSR
與leader副本同步滯后過多的副本(不包括leader)副本,組成OSR(Out-Sync Relipcas)。在正常
情況下,所有的follower副本都應(yīng)該與leader副本保持一定程度的同步,即AR=ISR,OSR集合為空。
1.1.5.8.4 HW
HW是High Watermak的縮寫, 俗稱高水位,它表示了一個特定消息的偏移量(offset),消費之
只能拉取到這個offset之前的消息。
1.1.5.8.5 LEO
LEO是Log End Offset的縮寫,它表示了當(dāng)前日志文件中下一條待寫入消息的offset。

kafka入門基礎(chǔ)知識有哪些

到此,關(guān)于“kafka入門基礎(chǔ)知識有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

當(dāng)前名稱:kafka入門基礎(chǔ)知識有哪些
網(wǎng)站網(wǎng)址:http://vcdvsql.cn/article44/pocdhe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站軟件開發(fā)做網(wǎng)站自適應(yīng)網(wǎng)站外貿(mào)網(wǎng)站建設(shè)網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)