您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
03 Apache Kafka支持發布與訂閱(RabbitMQ與Kafka之間的差異)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-03 02:03:59【】1人已围观
简介#8195;2.在.index文件中,使用二分查找,找到offset小于或者等于指定offset(這里假設是7)的最大的offset,這里查到的是6,然后獲取到index文件中offset為6指向的P
3. 在.log文件中,從磁盤位置258開始順序掃描,直到找到offset為7的Message。
至此,我們就簡單介紹完了Segment的基本組件.index文件和.log文件的存儲和查詢原理。但是我們會發現一個問題:.index文件中的offset并不是按順序連續存儲的,為什么Kafka要將索引文件設計成這種不連續的樣子?這種不連續的索引設計方式稱之為稀疏索引,Kafka中采用了稀疏索引的方式讀取索引,kafka每當.log中寫入了4k大小的數據,就往.index里以追加的寫入一條索引記錄。使用稀疏索引主要有以下原因:
(1) 索引稀疏存儲,可以大幅降低.index文件占用存儲空間大小。
(2) 稀疏索引文件較小,可以全部讀取到內存中,可以避免讀取索引的時候進行頻繁的IO磁盤操作,以便通過索引快速地定位到.log文件中的Message。
7. Message
Message是實際發送和訂閱的信息是實際載體,Procer發送到Kafka集群中的每條消息,都被Kafka包裝成了一個Message對象,之后再存儲在磁盤中,而不是直接存儲的。Message在磁盤中的物理結構如下所示。
其中 key 和 value 存儲的是實際的Message內容,長度不固定,而其他都是對Message內容的統計和描述,長度固定。因此在查找實際Message過程中,磁盤指針會根據Message的 offset 和 message length 計算移動位數,以加速Message的查找過程。之所以可以這樣加速,因為Kafka的.log文件都是順序寫的,往磁盤上寫數據時,就是追加數據,沒有隨機寫的操作。
8.Partition Replicas
最后我們簡單聊一下Kafka中的Partition Replicas(分區副本)機制,0.8版本以前的Kafka是沒有副本機制的。創建Topic時,可以為Topic指定分區,也可以指定副本個數。kafka 中的分區副本如下圖所示:
Kafka通過副本因子(replication-factor)控制消息副本保存在幾個Broker(服務器)上,一般情況下副本數等于Broker的個數,且同一個副本因子不能放在同一個Broker中。副本因子是以分區為單位且區分角色;主副本稱之為Leader(任何時刻只有一個),從副本稱之為 Follower(可以有多個),處于同步狀態的副本叫做in-sync-replicas(ISR)。Leader負責讀寫數據,Follower不負責對外提供數據讀寫,只從Leader同步數據,消費者和生產者都是從leader讀寫數據,不與follower交互,因此Kafka并不是讀寫分離的。同時使用Leader進行讀寫的好處是,降低了數據同步帶來的數據讀取延遲,因為Follower只能從Leader同步完數據之后才能對外提供讀取服務。
如果一個分區有三個副本因子,就算其中一個掛掉,那么只會剩下的兩個中,選擇一個leader,如下圖所示。但不會在其他的broker中,另啟動一個副本(因為在另一臺啟動的話,必然存在數據拷貝和傳輸,會長時間占用網絡IO,Kafka是一個高吞吐量的消息系統,這個情況不允許發生)。如果指定分區的所有副本都掛了,Consumer如果發送數據到指定分區的話,將寫入不成功。Consumer發送到指定Partition的消息,會首先寫入到Leader Partition中,寫完后還需要把消息寫入到ISR列表里面的其它分區副本中,寫完之后這個消息才能提交offset。
到這里,差不多把Kafka的架構和基本原理簡單介紹完了。Kafka為了實現高吞吐量和容錯,還引入了很多優秀的設計思路,如零拷貝,高并發網絡設計,順序存儲,以后有時間再說。
很赞哦!(5619)
相关文章
- 01 小學家長會買粉絲標題(文明校園創建總結買粉絲標題怎么寫)
- 02 國際經濟與貿易專業導論論文怎么寫(如何認識中國目前的收入差距?這樣的論文該怎么寫呀?)
- 02 國際經濟與貿易專業山東大學排名(求山東大學優勢學科及排名)
- 01 小孩吃飯視頻網紅(兒童網紅火爆的背后其實是什么?)
- 02 國際服務貿易的具體義務有哪些(現階段國際服務貿易的主要特征是什么 ?)
- 02 國際文化服務貿易的作用(國際文化服務貿易的作用包括哪些)
- 02 國際經濟與貿易專業本科代碼(國際經濟貿易專業的專業代碼??)
- 01 小學生雜志在哪里訂閱(小葵花雜志和當代小學生學校沒有集體定自己怎么訂)
- 01 小學生作文爆紅全網(給我一篇600多字的關于祝福的作文、和最近災害的作文。、訴求、必有重賞。復制的也不所謂、高考用,訴求。)
- 02 國際經濟與貿易專業相關證書(國際經濟與貿易專業可以考哪些證書)
热门文章
站长推荐
01 小學研學買粉絲文稿(牽手兩代奠基未來----小學家長學校辦學實踐與探索)
02 國際經濟與貿易專業簡稱英文(國際經濟與貿易專業各科目的英文翻譯)
01 小學秋季運動會買粉絲文章(校運會圓滿結束后需要在買粉絲發一篇推文,如何文字編輯?)
01 小學班級買粉絲功能介紹(小學語文聽課活動買粉絲怎么寫)
01 小學班級買粉絲功能介紹范文(有沒有關于上海小學學習的公眾)
01 小學時候學校訂閱的漫畫雜志女性(90年代末的小學生雜志《課外生活》上連載的水滸和西游記漫畫叫什么名字?)
02 國際服務貿易的特征包括(簡述當代國際服務貿易的特征)
02 國際石油貿易的現狀與特點(國際石油貿易的特點)