免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
消息系統(tǒng)Kafka介紹 | 董的博客
1、  概述

Kafka是Linkedin于2010年12月份開源的消息系統(tǒng),它主要用于處理活躍的流式數(shù)據(jù)?;钴S的流式數(shù)據(jù)在web網(wǎng)站應(yīng)用中非常常見,這些數(shù)據(jù)包括網(wǎng)站的pv、用戶訪問了什么內(nèi)容,搜索了什么內(nèi)容等。 這些數(shù)據(jù)通常以日志的形式記錄下來,然后每隔一段時間進(jìn)行一次統(tǒng)計處理。

傳統(tǒng)的日志分析系統(tǒng)提供了一種離線處理日志信息的可擴(kuò)展方案,但若要進(jìn)行實時處理,通常會有較大延遲。而現(xiàn)有的消(隊列)系統(tǒng)能夠很好的處理實時或者近似實時的應(yīng)用,但未處理的數(shù)據(jù)通常不會寫到磁盤上,這對于Hadoop之類(一小時或者一天只處理一部分?jǐn)?shù)據(jù))的離線應(yīng)用而言,可能存在問題。Kafka正是為了解決以上問題而設(shè)計的,它能夠很好地離線和在線應(yīng)用。

2、  設(shè)計目標(biāo)

(1)數(shù)據(jù)在磁盤上存取代價為O(1)。一般數(shù)據(jù)在磁盤上是使用BTree存儲的,存取代價為O(lgn)。

(2)高吞吐率。即使在普通的節(jié)點上每秒鐘也能處理成百上千的message。

(3)顯式分布式,即所有的producer、broker和consumer都會有多個,均為分布式的。

(4)支持?jǐn)?shù)據(jù)并行加載到Hadoop中。

3、  KafKa部署結(jié)構(gòu)


kafka是顯式分布式架構(gòu),producer、broker(Kafka)和consumer都可以有多個。Kafka的作用類似于緩存,即活躍的數(shù)據(jù)和離線處理系統(tǒng)之間的緩存。幾個基本概念:

(1)message(消息)是通信的基本單位,每個producer可以向一個topic(主題)發(fā)布一些消息。如果consumer訂閱了這個主題,那么新發(fā)布的消息就會廣播給這些consumer。

(2)Kafka是顯式分布式的,多個producer、consumer和broker可以運(yùn)行在一個大的集群上,作為一個邏輯整體對外提供服務(wù)。對于consumer,多個consumer可以組成一個group,這個message只能傳輸給某個group中的某一個consumer.

4、  KafKa關(guān)鍵技術(shù)點

(1)  zero-copy

在Kafka上,有兩個原因可能導(dǎo)致低效:1)太多的網(wǎng)絡(luò)請求 2)過多的字節(jié)拷貝。為了提高效率,Kafka把message分成一組一組的,每次請求會把一組message發(fā)給相應(yīng)的consumer。 此外, 為了減少字節(jié)拷貝,采用了sendfile系統(tǒng)調(diào)用。為了理解sendfile原理,先說一下傳統(tǒng)的利用socket發(fā)送文件要進(jìn)行拷貝:

Sendfile系統(tǒng)調(diào)用:

(2) Exactly once message transfer

怎樣記錄每個consumer處理的信息的狀態(tài)?在Kafka中僅保存了每個consumer已經(jīng)處理數(shù)據(jù)的offset。這樣有兩個好處:1)保存的數(shù)據(jù)量少 2)當(dāng)consumer出錯時,重新啟動consumer處理數(shù)據(jù)時,只需從最近的offset開始處理數(shù)據(jù)即可。

(3)Push/pull

Producer 向Kafka(push)推數(shù)據(jù),consumer 從kafka 拉(pull)數(shù)據(jù)。

(4)負(fù)載均衡和容錯

Producer和broker之間沒有負(fù)載均衡機(jī)制。
broker和consumer之間利用zookeeper進(jìn)行負(fù)載均衡。所有broker和consumer都會在zookeeper中進(jìn)行注冊,且zookeeper會保存他們的一些元數(shù)據(jù)信息。如果某個broker和consumer發(fā)生了變化,所有其他的broker和consumer都會得到通知。

【參考資料】

【1】Kafka主頁:http://sna-projects.com/kafka/design.php

【2】Zero-copy原理:https://www.ibm.com/developerworks/linux/library/j-zerocopy/

【3】Kafka與Hadoop:http://sna-projects.com/sna/media/kafka_hadoop.pdf

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
分布式消息系統(tǒng):Kafka
為什么你要使用這么強(qiáng)大的分布式消息中間件——kafka
Kafka 分布式消息隊列介紹
急需降低系統(tǒng)復(fù)雜性,我們從 Kafka 遷移到了 Pulsar
Kafka剖析(一):高擴(kuò)展、高吞吐的分布式消息系統(tǒng)初探
Kafka基本原理和java簡單使用教程
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服