在ActiveMQ、RabbitMQ卒废、RocketMQ沛厨、Kafka消息中間件之間,我們?yōu)槭裁匆x擇Kafka?
下面詳細介紹一下摔认,2012年9月份我在支付寶做余額寶研發(fā)逆皮,2013年6月支付寶正式推出余額寶,2013年8月?lián)沃Ц秾毺詫毑势表椖拷?jīng)理帶領(lǐng)兄弟們一起做研發(fā)参袱,期間需要與淘寶和500萬對接競彩接口數(shù)據(jù)电谣。
通過業(yè)余時間與淘寶同事溝通,了解到天貓在電商節(jié)如何處理大數(shù)據(jù)抹蚀?技術(shù)架構(gòu)上采用了哪些策略剿牺?
1、應(yīng)用無狀態(tài)(淘寶session框架)
2环壤、有效使用緩存(Tair)
3晒来、應(yīng)用拆分(HSF)
4、數(shù)據(jù)庫拆分(TDDL)
5郑现、異步通信(Notify)
6湃崩、非結(jié)構(gòu)化數(shù)據(jù)存儲 ( TFS,NOSQL)
7、監(jiān)控懂酱、預(yù)警系統(tǒng)
8竹习、配置統(tǒng)一管理
天貓的同事把大致的架構(gòu)跟我描述了一番,心有感悟列牺。咱們來看一下2018年雙11當天的成交額整陌。
二、kafka實現(xiàn)天貓億萬級數(shù)據(jù)統(tǒng)計架構(gòu)
Flume是Cloudera提供的一個高可用的,高可靠的泌辫,分布式的海量日志采集随夸、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方震放,用于收集數(shù)據(jù)宾毒;同時,F(xiàn)lume提供對數(shù)據(jù)進行簡單處理殿遂,并寫到各種數(shù)據(jù)接受方(可定制)的能力诈铛。
Data Access:數(shù)據(jù)通道
Computing:計算
Persistence:執(zhí)行保存方式
spout:表示一個流的源頭,產(chǎn)生tuple
bolt:處理輸入流并產(chǎn)生多個輸出流墨礁,可以做簡單的數(shù)據(jù)轉(zhuǎn)換計算幢竹,復(fù)雜的流處理一般需要經(jīng)過多個bolt進行處理。
為什么不能用分布式文件HDFS集群恩静?
1焕毫、實時性:hdfs的實時性沒有kafka高。
2驶乾、消費量的記錄:hdfs不會記錄你這個塊文件消費到了哪里邑飒,而基于zookeeper的kafka會記錄你消費的點。
3级乐、并發(fā)消費:hdfs不支持并發(fā)消費疙咸,而kafka支持并發(fā)消費,即多個consumer风科。
4罕扎、彈性且有序:當數(shù)據(jù)量會很大,而且處理完之后就可以刪除時丐重,頻繁的讀寫會對hdfs中NameNode造成很大的壓力腔召。而kafka的消費點是記錄在zookeeper的,并且kafka的每條數(shù)據(jù)都是有“坐標”的扮惦,所以消費的時候只要這個“坐標”向后移動就行了臀蛛,而且刪除的時候只要把這個“坐標”之前的數(shù)據(jù)刪掉即可。
三崖蜜、什么是Kafka?
通過上圖就可以了解到浊仆,生產(chǎn)者Producers(農(nóng)民和廚師),消費主題top(魚豫领,骨頭抡柿,草,香蕉),消費者Comsumer(貓等恐,狗洲劣,老牛备蚓,猴子),生產(chǎn)者根據(jù)消費主題獲取自己想要的食物囱稽。
四郊尝、Kafka架構(gòu)原理
歡迎加入Java進階架構(gòu)交流:加入142019080。
直接點擊鏈接加群战惊。https://jq.qq.com/?_wv=1027&k=5lXBNZ7 獲取最新學(xué)習(xí)資料