久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Kafka的特點有哪些

187次閱讀
沒有評論

共計 2307 個字符,預計需要花費 6 分鐘才能閱讀完成。

本文丸趣 TV 小編為大家詳細介紹“Kafka 的特點有哪些”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Kafka 的特點有哪些”文章能幫助大家解決疑惑,下面跟著丸趣 TV 小編的思路慢慢深入,一起來學習新知識吧。

Kafka 是啥?

Kafka 是個集群的消息中間件 + 存儲,一個節點可以存儲幾 T 的數據!

為啥一個中間件需要存儲數據呢?

原來,對于 Linkin 這樣的互聯網企業來說,用戶和網站上產生的數據有三種:

需要實時響應的交易數據,用戶提交一個表單,輸入一段內容,這種數據最后是存放在關系數據庫 (Oracle, MySQL) 中的,有些需要事務支持。

活動流數據,準實時的,例如頁面訪問量、用戶行為、搜索情況,這些數據可以產生啥?廣播、排序、個性化推薦、運營監控等。這種數據一般是前端服務器先寫文件,然后通過批量的方式把文件倒到 Hadoop 這種大數據分析器里面慢慢整。

各個層面程序產生的日志,例如 httpd 的日志、tomcat 的日志、其他各種程序產生的日志。碼農專用,這種數據一個是用來監控報警,還有就是用來做分析。

Linkin 的牛逼之處,就在于他們發現了原先 2,3 的數據處理方式有問題,對于 2 而言,原來動輒一兩個鐘頭批處理一次的方式已經不行了,用戶在一次購買完之后最好馬上就能看到相關的推薦。而對于 3 而言,傳統的 syslog 模式等也不好用,而且很多情況下 2 和 3 用的是同一批數據,只是數據消費者不一樣。

這 2 種數據的特點是:

準實時,不需要秒級響應,分鐘級別即可。

數據量巨大,是交易數據的 10 倍以上。

數據消費者眾多,例如評級、投票、排序、個性化推薦、安全、運營監控、程序監控、后期報表等

于是,Linkin 就自己開發了一套系統,專門用來處理這種性質的數據,這就是 Kafka

那么,在整個實踐過程中 Linkin 做了什么樣的設計,解決了什么問題?

首先看下數據流動圖:

多數據中心怎么管理數據:

集群本身的架構圖

Kafka 內部架構圖,分為數據產生者(Producer),數據中間者(Broker),數據消費者(Consumer)

顯然,這是一個集群的發布 / 訂閱系統,有如下幾個特點

生產者是推數據(Push),消費者是拉數據(Pull)。存在數據復用,在 Linkin 平均生產 1 條消息會被消費 5.5 次。

數據生產者和數據消費者的速度不對等,所以要把數據沉淀在 Kafka 內慢慢處理,Linkin 一般在集群內放 7 天的數據。

性能上追求高吞吐,保證一定的延時性之內。這方面做了大量優化,包括沒有全局 hash,批量發送,跨數據中心壓縮等等。

容錯性上使用的“至少傳輸一次”的語義。不保證強一次,但避免最多傳一次的情況。

集群中數據分區,保證單個數據消費者可以讀到某話題 (topic) 的某子話題 (例如某用戶的數據) 的所有數據,避免全局讀數據

數據規范性,所有數據分為數百個話題,然后在數據的源頭——生產者 (Producer) 這邊就用 Schema 來規范數據,這種理念使得后期的數據傳輸、序列化、壓縮、消費都有了統一的規范,同時也解決了這個領域非常麻煩的數據版本不兼容問題——生產者一改代碼,消費者就抓瞎。

用于監控,這個系統的威力在于,前面所有生產系統的數據流向,通過這個系統都能關聯起來,用于日常的運營也好,用于數據審計,用于運維級別的監控也好都是神器啊!

To be continued…

所以,Kafka 的設計基本上目前這個領域的唯一選擇。我也看了很多其他實現,包括:

scribe(Facebook) | 2 | C++ |  已停止更新,不建議使用
flume(Apache, Cloudera) |1 | Java |  配置較重
chukwa(Hadoop) |12 | Java | 2012 發布最后一版,不建議使用
fluentd |1 | Ruby |  比較活躍,看起來不錯
logstash |12345| JRuby |  功能全,據說有不少小 bug
splunk |12345| C/Python |  商業閉源,功能強大,可做參考
timetunnel(Alibaba) | 2 | Java |  基于 thrift,10 年左右成熟
kafka(Linkin) | 2 4 | Scala |  性能強勁,設計巧妙,可以作為基礎設施
Samza(Linkin) |12345| | =Kafka+YARN+Hadoop
rabbitmq/activemq/qpid | 2 | Java |  傳統消息中間件
Storm(twitter) | 3 | Clojure |  實時計算系統
Jstorm(Alibaba) | 3 | Java | storm 的 Java 版,據說更穩定
S4(Yahoo) | 3 | Java | 2013 年已停止維護
Streambase(IBM) | 3 | Java |  商業產品,作為參考
HStreaming | 3 | Java |  商業產品,作為參考
spark | 3 | Scala |  基于 Hadoop
mongodb | 4 | C++ |  比較浪費硬盤
mysql | 4 | C++ |  無需多說
hdfs/hbase | 4 | Java |  無需多說

數據采集組件

數據傳輸組件

數據實時計算 / 索引 / 搜索組件

數據存儲 / 持久化組件

數據展示 / 查詢 / 報警界面組件

從數據傳輸這塊的設計理念來說,Kafka 是最為先進的,

在目前的各種實現中,我猜測可以和 Kafka 一戰的也就只有 Splunk 了

讀到這里,這篇“Kafka 的特點有哪些”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-04發表,共計2307字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 女性| 天镇县| 赫章县| 梁山县| 密云县| 西昌市| 临沧市| 观塘区| 同心县| 昌宁县| 尚志市| 襄垣县| 兰考县| 嘉义市| 腾冲县| 汽车| 英山县| 容城县| 永泰县| 马边| 沈阳市| 马龙县| 图们市| 兴业县| 西乌| 宣化县| 清徐县| 咸宁市| 金溪县| 兴文县| 永川市| 达孜县| 栖霞市| 高唐县| 丰城市| 曲周县| 隆德县| 阳春市| 芜湖市| 城市| 象山县|