日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
談?wù)勀銓afka數(shù)據(jù)存儲原理的理解

談?wù)勀銓afka數(shù)據(jù)存儲原理的理解

作者:Tom彈架構(gòu) 2022-08-14 07:14:50

云計算

Kafka 今天,我給大家來聊一聊我對Kafka零拷貝原理的理解。

創(chuàng)新互聯(lián)公司主營隆昌網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app開發(fā),隆昌h5成都小程序開發(fā)搭建,隆昌網(wǎng)站營銷推廣歡迎隆昌等地區(qū)企業(yè)咨詢

一位5年工作經(jīng)驗的小伙伴面試的時候被問到這樣一個問題,說”談?wù)勀銓afka數(shù)據(jù)存儲原理的理解“。然后,這位小伙伴突然愣住了,什么是零拷貝,零拷貝跟Kafka有關(guān)系嗎?

那么今天,我給大家來聊一聊我對Kafka零拷貝原理的理解。

1、Topic主題

在Kafka中,這個用 來存儲消息的隊列叫做Topic,它是一個邏輯的概念,可以理解為一組消息的集合。

生產(chǎn)者和Topic以及Topic和消費者的關(guān)系都是多對多。一個生產(chǎn)者可以發(fā)送消息到多個Topic,一個消費者也可以從多個Topic獲取消息(但是不建議這么做)。

生產(chǎn)者發(fā)送消息時,如果Topic不存在,Kafka默認(rèn)會自動創(chuàng)建。

2、Partition分區(qū)

首先,Kafka為了實現(xiàn)橫向擴展,它會把不同的數(shù)據(jù)存放在不同的Broker上,同時為了降低單臺服務(wù)器的訪問壓力,把一個Topic中的數(shù)據(jù)分隔成多個Partition。在服務(wù)器上,每個Partition都有一個物理目錄,Topic名字后面的數(shù)字標(biāo)號即代表分區(qū)。比如創(chuàng)建一個名為mytopic的主題,數(shù)據(jù)目錄被分布到了3臺機器。

如圖所示:

mytopic-0存在A節(jié)點,mytopic-1存在B節(jié)點,mytopic-2存在C節(jié)點。

3、Replica副本

另外,Kafa為了提高分區(qū)的可靠性,又設(shè)計了副本機制。我們創(chuàng)建Topic的時候,通過指定replication-factor副本因子,來確定Topic的副本數(shù)。當(dāng)然,副本因子數(shù)必須小于等于節(jié)點數(shù),否則會報錯。這樣就可以保證,絕對不會有一個分區(qū)的兩個副本分布在同一個節(jié)點上,不然副本機制也失去了備份的意義了。

如圖所示,創(chuàng)建了一個3個分區(qū)3個副本的Topic a3part3rep,被均勻分布到了3個Broker節(jié)點上,每個Broker節(jié)點互為備份。

這些所有的副本分為兩種角色,Leader對外提供讀寫服務(wù)。Follower唯一的任務(wù)就是從Leader異步拉取數(shù)據(jù),圖中紅色的副本為Leade,也被均勻分布在各個節(jié)點上,可以保證讀寫均勻,這樣的設(shè)計也稱為單調(diào)讀一致性。

?4、Segment分段

Kakfa為了防止Log不斷追加導(dǎo)致文件過大,導(dǎo)致檢索消息效率變低,一個Partition超出一定大小的時候,就被切割為多個Segment來組織數(shù)據(jù)。在磁盤上,每個Segment由一個log文件和2個index文件組成。

如圖所示,這三個文件是成套出現(xiàn)的。其中.index是用來存儲Consumer的Offset偏移量的索引文件,.timeindex是用來存儲消息時間戳的索引文件,log文件就是用來存儲具體的數(shù)據(jù)文件。

以切割時記錄的Offset值作為文件的名字。它的文件結(jié)構(gòu)是這樣的,如圖所示:

?5、Index索引

前面我們講到Kafka設(shè)計了兩種索引,一種是偏移量索引文件,記錄的是Offset和消息在Log文件中的位置映射關(guān)系。一種是時間戳索引文件,記錄的是時間戳和Offset的關(guān)系。為了提高檢索效率Kafka并不會為每一條消息都會建立索引,而是采用稀疏索引。也就是說隔一批消息才產(chǎn)生一條索引記錄。如圖所示:


分享名稱:談?wù)勀銓afka數(shù)據(jù)存儲原理的理解
網(wǎng)站URL:http://www.5511xx.com/article/dhcchho.html