五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

深扒Kafka六大優(yōu)勢(shì),媒體不敢說(shuō),那就我來(lái)說(shuō)!

2020-07-27 12:15 作者:朝夕教育  | 我要投稿


最近有小伙伴報(bào)喜,說(shuō)終于拿到了鵝廠(chǎng)的Offer,3面時(shí)還只問(wèn)了Kafka的吞吐設(shè)計(jì)!今天就給大家展開(kāi)講一講大熱的Kafka!

容器、Kubernetes、DevOps、微服務(wù)、云原生,這些技術(shù)名詞的頻繁出現(xiàn),預(yù)兆著新的互聯(lián)網(wǎng)技術(shù)時(shí)代的到來(lái),大數(shù)據(jù)高并發(fā)將不再遙遠(yuǎn),而是大部分項(xiàng)目都必須具備的能力了,而消息隊(duì)列是必備的了。成熟的消息隊(duì)列產(chǎn)品很多,說(shuō)到海量數(shù)據(jù)下高吞吐高并發(fā),Kafka不是針對(duì)誰(shuí),毋庸置疑的首選!

Kafka介紹


Kafka是一個(gè)分布式的基于發(fā)布訂閱的消息隊(duì)列,有著無(wú)與倫比的消息處理能力,相比與其他消息系統(tǒng),具有以下特性:



高吞吐:普通服務(wù)器每秒幾十萬(wàn)條消息


低延遲:TB級(jí)數(shù)據(jù)延遲最低只有幾毫秒


高并發(fā):支持?jǐn)?shù)千個(gè)客戶(hù)端同時(shí)讀寫(xiě)


可擴(kuò)展:Kafka集群支持熱擴(kuò)展


可靠性:消息被持久化到本地磁盤(pán)


容錯(cuò)性:允許集群中節(jié)點(diǎn)故障


正是因?yàn)镵afka優(yōu)異的表現(xiàn),現(xiàn)在已經(jīng)被廣泛應(yīng)用于海量日志收集、大數(shù)據(jù)處理、流式處理等場(chǎng)景!下面我們來(lái)探討下,Kafka到底是如何做到這么高的吞吐量和性能的呢?

頁(yè)緩存技術(shù) + 磁盤(pán)順序?qū)?/p>


首先,Kafka的消息數(shù)據(jù)是寫(xiě)在硬盤(pán)上的,保證了消息數(shù)據(jù)的可靠性,但寫(xiě)硬盤(pán)還能保證幾十萬(wàn)條/秒的消息處理速度,是怎么做到的?

因?yàn)镵afka在這里有極為優(yōu)秀和出色的設(shè)計(jì)!為了保證數(shù)據(jù)的寫(xiě)入性能,Kafka是基于操作系統(tǒng)的頁(yè)緩存來(lái)實(shí)現(xiàn)文件寫(xiě)入的。


頁(yè)緩存page cache,是操作系統(tǒng)自己管理的內(nèi)存緩存,也叫os cache。寫(xiě)入消息時(shí),是直接寫(xiě)入這個(gè)頁(yè)緩存里,然后由操作系統(tǒng)自己決定什么時(shí)候把頁(yè)緩存里的數(shù)據(jù)真的刷入磁盤(pán)文件中。


這樣一來(lái),消息寫(xiě)入性能就變成了寫(xiě)內(nèi)存,不是在寫(xiě)磁盤(pán),請(qǐng)看下圖。


Kafka高性能寫(xiě)入的再一個(gè)設(shè)計(jì)是磁盤(pán)順序?qū)?。一般磁盤(pán)寫(xiě)入都是隨機(jī)寫(xiě),隨便找到文件的某個(gè)位置來(lái)寫(xiě)數(shù)據(jù),這樣的性能非常差,但是追加文件末尾按照順序的方式來(lái)寫(xiě)數(shù)據(jù)的話(huà),其寫(xiě)入性能跟寫(xiě)內(nèi)存的性能差不多。

總結(jié)下, Kafka在寫(xiě)數(shù)據(jù)的時(shí)候,一方面基于了操作系統(tǒng)的page cache來(lái)寫(xiě)數(shù)據(jù),另一方面是采用磁盤(pán)順序?qū)懙姆绞?,就?shí)現(xiàn)了寫(xiě)入數(shù)據(jù)的超高性能,才能做到在普通服務(wù)器上每秒寫(xiě)入幾十萬(wàn)條消息。


零拷貝技術(shù)


解決了寫(xiě)入問(wèn)題,那消息讀取呢?頻繁的從磁盤(pán)讀數(shù)據(jù)然后發(fā)給消費(fèi)者,性能又是如何保證的?Kafka為了解決這個(gè)問(wèn)題,在讀數(shù)據(jù)的時(shí)候是引入零拷貝技術(shù)。


先看圖1是常規(guī)的硬盤(pán)讀寫(xiě)流程,操作系統(tǒng)讀取硬盤(pán)數(shù)據(jù)后放在OS Cache,然后需要拷貝一次到Kafka進(jìn)程,然后Kafka再將數(shù)據(jù)拷貝到Socket緩存才能發(fā)送到網(wǎng)卡,這樣流程的性能當(dāng)然沒(méi)有保障。


再看圖2, Kafka的設(shè)計(jì)為直接將操作系統(tǒng)OS Cache中的數(shù)據(jù)發(fā)送到網(wǎng)卡,跳過(guò)了兩次拷貝數(shù)據(jù)的步驟,Socket緩存中僅僅會(huì)拷貝一個(gè)描述符過(guò)去,不會(huì)拷貝數(shù)據(jù)到Socket緩存,大大提升了數(shù)據(jù)讀取性能。


深扒Kafka六大優(yōu)勢(shì),媒體不敢說(shuō),那就我來(lái)說(shuō)!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
阿图什市| 浦北县| 丰都县| 芦山县| 塔城市| 潜江市| 刚察县| 吴忠市| 姜堰市| 义马市| 怀集县| 韶山市| 浠水县| 瑞昌市| 定远县| 彰武县| 平武县| 东乡县| 南康市| 台中市| 江源县| 和硕县| 康马县| 许昌市| 托克托县| 乡宁县| 庄浪县| 醴陵市| 如皋市| 巴楚县| 信阳市| 娱乐| 区。| 万年县| 云林县| 佛冈县| 平遥县| 松滋市| 隆德县| 松潘县| 偏关县|