版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
KafkaBroker一些特性2目錄01無狀態(tài)的KafkaBroker02message的交付與生命周期03050604壓縮消息可靠性備份機制Kafka高效性相關設計無狀態(tài)的KafkaBroker31.Broker沒有副本機制,一旦broker宕機,該broker的消息將都不可用。2.Broker不保存訂閱者的狀態(tài),由訂閱者自己保存。3.無狀態(tài)導致消息的刪除成為難題(可能刪除的消息正在被訂閱),kafka采用基于時間的SLA(服務水平保證),消息保存一定時間(通常為7天)后會被刪除。4.消息訂閱者可以rewindback到任意位置重新進行消費,當訂閱者故障時,可以選擇最小的offset進行重新讀取消費消息。message的交付與生命周期41.不是嚴格的JMS,因此kafka對消息的重復、丟失、錯誤以及順序型沒有嚴格的要求。(這是與AMQ最大的區(qū)別)2.kafka提供at-least-oncedelivery,即當consumer宕機后,有些消息可能會被重復delivery。3.因每個partition只會被consumergroup內的一個consumer消費,故kafka保證每個partition內的消息會被順序的訂閱。4.Kafka為每條消息為每條消息計算CRC校驗,用于錯誤檢測,crc校驗不通過的消息會直接被丟棄掉。5壓縮Kafka支持以集合(batch)為單位發(fā)送消息,在此基礎上,Kafka還支持對消息集合進行壓縮,Producer端可以通過GZIP或Snappy格式對消息集合進行壓縮。Producer端進行壓縮之后,在Consumer端需進行解壓。壓縮的好處就是減少傳輸?shù)臄?shù)據(jù)量,減輕對網(wǎng)絡傳輸?shù)膲毫?,在對大?shù)據(jù)處理上,瓶頸往往體現(xiàn)在網(wǎng)絡上而不是CPU。那么如何區(qū)分消息是壓縮的還是未壓縮的呢,Kafka在消息頭部添加了一個描述壓縮屬性字節(jié),這個字節(jié)的后兩位表示消息的壓縮采用的編碼,如果后兩位為0,則表示消息未被壓縮。消息可靠性6在消息系統(tǒng)中,保證消息在生產(chǎn)和消費過程中的可靠性是十分重要的,在實際消息傳遞過程中,可能會出現(xiàn)如下三中情況:一個消息發(fā)送失敗一個消息被發(fā)送多次最理想的情況:exactly-once,一個消息發(fā)送成功且僅發(fā)送了一次有許多系統(tǒng)聲稱它們實現(xiàn)了exactly-once,但是它們其實忽略了生產(chǎn)者或消費者在生產(chǎn)和消費過程中有可能失敗的情況。比如雖然一個Producer成功發(fā)送一個消息,但是消息在發(fā)送途中丟失,或者成功發(fā)送到broker,也被consumer成功取走,但是這個consumer在處理取過來的消息時失敗了。從Producer端看:Kafka是這么處理的,當一個消息被發(fā)送后,Producer會等待broker成功接收到消息的反饋(可通過參數(shù)控制等待時間),如果消息在途中丟失或是其中一個broker掛掉,Producer會重新發(fā)送(我們知道Kafka有備份機制,可以通過參數(shù)控制是否等待所有備份節(jié)點都收到消息)。從Consumer端看:前面講到過partition,broker端記錄了partition中的一個offset值,這個值指向Consumer下一個即將消費message。當Consumer收到了消息,但卻在處理過程中掛掉,此時Consumer可以通過這個offset值重新找到上一個消息再進行處理。Consumer還有權限控制這個offset值,對持久化到broker端的消息做任意處理。備份機制7備份機制是Kafka0.8版本的新特性,備份機制的出現(xiàn)大大提高了Kafka集群的可靠性、穩(wěn)定性。有了備份機制后,Kafka允許集群中的節(jié)點掛掉后而不影響整個集群工作。一個備份數(shù)量為n的集群允許n-1個節(jié)點失敗。在所有備份節(jié)點中,有一個節(jié)點作為lead節(jié)點,這個節(jié)點保存了其它備份節(jié)點列表,并維持各個備份間的狀體同步。8Kafka高效性相關設計消息的持久化Kafka高度依賴文件系統(tǒng)來存儲和緩存消息(AMQ的nessage是持久化到mysql數(shù)據(jù)庫中的),因為一般的人認為磁盤是緩慢的,這導致人們對持久化結構具有競爭性持懷疑態(tài)度。其實,磁盤的快或者慢,這決定于我們如何使用磁盤。因為磁盤線性寫的速度遠遠大于隨機寫。線性讀寫在大多數(shù)應用場景下是可以預測的。9Kafka高效性相關設計常數(shù)時間性能保證每個Topic的Partition的是一個大文件夾,里面有無數(shù)個小文件夾segment,但partition是一個隊列,隊列中的元素是segment,消費的時候先從第0個segment開始消費,新來message存在最后一個消息隊列中。對于segment也是對隊列,隊列元素是message,有對應的offsite標識是哪個message。消費的時候先從這個segment的第一個message開始消費,新來的message存在segment的最后。消息系統(tǒng)的持久化隊列可以構建在對一個文件的讀和追加上,就像一般情況下的日志解決方案。它有一個優(yōu)點,所有的操作都是常數(shù)時間,并且讀寫之間不會相互阻塞。這種設計具有極大的性能優(yōu)勢:最終系統(tǒng)性能和數(shù)據(jù)大小完全無關,服務器可以充
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)兩間門面租賃合同
- 單位向私人借款合同書
- 國際空運運輸代理合同
- 風險管理與應對策略制定作業(yè)指導書
- 2025年泰安考從業(yè)資格證貨運試題
- 小學三年級,五年級下冊數(shù)學口算題比賽試卷
- 小學二年級數(shù)學萬以內口算題
- 2025年北京交通運輸從業(yè)資格證怎樣考試
- 2025年西藏貨運從業(yè)資格證模擬考試系統(tǒng)
- 2025年烏蘭察布下載貨運從業(yè)資格證模擬考試題
- 光伏發(fā)電項目施工組織設計方案及技術措施
- 2025年1月日歷表(含農(nóng)歷-周數(shù)-方便記事備忘)
- 人教版數(shù)學三年級下冊 期末測試卷帶答案(能力提升)
- 2024年同等學力人員申請碩士學位英語試卷與參考答案
- 臨床用血管理培訓
- 介入手術室護理風險
- 春季安全行車教育培訓
- 2024年6月第3套英語六級真題
- 2024年江蘇省公務員錄用考試《行測》題(A類)
- 工業(yè)自動化生產(chǎn)線操作手冊
- 2024年10月時政100題(附答案)
評論
0/150
提交評論