“根本就不需要 Kafka 这样的大型分布式系统!”
由 Scala 和 Java 編寫(xiě)的 Kafka 是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費(fèi)者在網(wǎng)站中的所有動(dòng)作流數(shù)據(jù),不過(guò),Kafka 也存在數(shù)據(jù)并非真正的實(shí)時(shí)傳輸、不支持物聯(lián)網(wǎng)傳感數(shù)據(jù)直接接入、監(jiān)控不完善等缺點(diǎn)。事實(shí)上,作為開(kāi)發(fā)者,在項(xiàng)目中通常會(huì)視情況而定地去選擇適用的技術(shù)架構(gòu),而并非所有相關(guān)的架構(gòu)就適合自己,在本文中,作者基于特定的項(xiàng)目及場(chǎng)景強(qiáng)烈地表達(dá)了對(duì) Kafka的不滿,而這究竟是何原因?qū)е碌?#xff1f;
作者 |?Normcore Tech
譯者 | 彎月,責(zé)編 | 屠敏
出品 | CSDN(ID:CSDNnews)
以下為譯文:
可能有人沒(méi)有聽(tīng)說(shuō)過(guò)Kafka,這是一個(gè)非常復(fù)雜的分布式軟件,可協(xié)調(diào)多臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳輸。更具體地說(shuō),該軟件的功能是“展平”數(shù)據(jù),然后快速地將數(shù)據(jù)從一個(gè)地方移動(dòng)到另一個(gè)地方。一般來(lái)講,如果你有很多數(shù)據(jù)需要快速處理并發(fā)送到其他地方,那么就可以考慮一下Kafka。Kafka還可以在一定期限內(nèi)保留數(shù)據(jù),比如設(shè)置數(shù)據(jù)保存2天、3天或7天,如果你的下游流程失敗,那么你還可以利用存儲(chǔ)在Kafka中的數(shù)據(jù)重新處理。
許多處理匯總數(shù)據(jù)的公司(比如Facebook和Twitter等社交網(wǎng)絡(luò)數(shù)據(jù),以及每晚需要處理大量星體運(yùn)動(dòng)的天文學(xué)家,或需要快速了解車輛周圍環(huán)境數(shù)據(jù)的自動(dòng)駕駛車輛公司等)都在使用Kafka,將任意地方生產(chǎn)的數(shù)據(jù)(即用戶通過(guò)鍵盤(pán)輸入的數(shù)據(jù),通過(guò)望遠(yuǎn)鏡讀取的數(shù)據(jù),通過(guò)車輛遙測(cè)讀取的數(shù)據(jù)等)移動(dòng)至下游流程進(jìn)行處理和分析。
最近,WeWork更為名The We Company,他們?cè)诠蚕砉ぷ鏖g領(lǐng)域取得了成功,其官網(wǎng)宣稱公司的使命為:
“提升世界的意識(shí)。”其核心業(yè)務(wù)是從房地產(chǎn)出租公司那里租下辦公室,然后轉(zhuǎn)租給無(wú)法按照傳統(tǒng)流程租賃辦公室的個(gè)人和小公司。
為了“提升世界的意識(shí)”,該公司致力于為世界各地的個(gè)人和公司的團(tuán)隊(duì)打造獨(dú)特卻又不完全相同的辦公空間。最近,該公司還開(kāi)始涉足教育。
最近,因?yàn)樯鲜?#xff0c;WeWork曝光了一些財(cái)務(wù)信息:
WeWork的收入從2017年的8.86億美元增加到2018年的18億美元,大約翻了一番,而凈虧損達(dá)到驚人的19億美元。對(duì)于即將上市的公司而言,這個(gè)數(shù)字可不怎么好看;然而也有先例,優(yōu)步的增長(zhǎng)萎縮依然未能阻礙其完成一場(chǎng)備受關(guān)注的公開(kāi)募股。以下是Crunchbase新聞報(bào)道的WeWork財(cái)務(wù)報(bào)告:
2017年WeWork的收入為:8.86億美元
2017年WeWork的凈虧損為:9.33億美元
2018年WeWorks的收入為:18.2億美元(+ 105.4%)
2018年WeWork的凈虧損為:19億美元(+ 103.6%)
從好的方面來(lái)看,根據(jù)Axios的數(shù)據(jù),2018年WeWork的入住率為90%,且會(huì)員總數(shù)在不斷增加。
有人常常將WeWork視為硅谷地區(qū)的公司過(guò)高估值的完美例子。作為一家房地產(chǎn)企業(yè),WeWork燒錢(qián)的速度非常快,毫無(wú)疑問(wèn)他們必須努力讓公眾市場(chǎng)投資者相信公司有長(zhǎng)遠(yuǎn)的發(fā)展,同時(shí)和還要維護(hù)其作為科技公司的地位。
這家公司再三強(qiáng)調(diào)說(shuō)它不是一家房地產(chǎn)公司(畢竟它在不斷燒錢(qián)對(duì)吧?),那么一家消息中介技術(shù)公司究竟能提供什么?WeWork曾宣布,它使用Kafka來(lái)實(shí)現(xiàn)“內(nèi)部部署的物聯(lián)網(wǎng)需求”。這是什么意思?
“我們的產(chǎn)品是物理空間,”WeWork的首席開(kāi)發(fā)負(fù)責(zé)人David Fano說(shuō),他在會(huì)議期間穿著一件印有“bldgs = data”字樣的T恤。
每個(gè)辦公室都有10個(gè)環(huán)境傳感器——小巧的壁掛式綠色盒子,這些傳感器可跟蹤室內(nèi)溫度、濕度、空氣質(zhì)量、氣壓和環(huán)境光線水平。還有20個(gè)白色的壁掛式信標(biāo),呈三角形分布在公共空間(開(kāi)放式辦公區(qū)和會(huì)議室),用于測(cè)量WeWork成員的室內(nèi)位置(數(shù)據(jù)是匿名的)。頂部四分之一的傳感器通過(guò)計(jì)算機(jī)視覺(jué)觀察成員的活動(dòng)。?
換句話說(shuō),WeWork會(huì)跟蹤WeWork的多個(gè)物理事件并記錄所有這些數(shù)據(jù)。但是......他們真的有必要這樣做嗎?記錄Keith Harring壁畫(huà)周圍開(kāi)放區(qū)域的環(huán)境溫度能給他們帶來(lái)怎樣的競(jìng)爭(zhēng)優(yōu)勢(shì)?更重要的是,他們能否將這些信息用到重要的項(xiàng)目中?
由于WeWork的資金主要來(lái)自訂閱,特別是來(lái)自企業(yè)的訂閱,因此為這些客戶優(yōu)化空間是有意義的:
對(duì)于公司而言,重要的是要了解辦公室的“單位組合” ——私人辦公室、會(huì)議空間和開(kāi)放式辦公桌——的比例,我們可以利用這些信息對(duì)下一個(gè)辦公間作出調(diào)整。
我覺(jué)得這家新聞報(bào)道機(jī)構(gòu)需要建立一種思考技術(shù)的心理模型。Ben Thompson為Stratechery提供了出色的服務(wù),他建立了聚合理論(https://stratechery.com/concepts/),我在努力為這些理論建立一個(gè)網(wǎng)站,如果必須從中選擇一個(gè)的話,那便是:
大多數(shù)創(chuàng)業(yè)公司(以及大公司)現(xiàn)有的技術(shù)棧都沒(méi)有必要。
在此,我想挑戰(zhàn)一下那些自認(rèn)為可以在一個(gè)周末期間獨(dú)自建立Facebook的Hacker News上的開(kāi)發(fā)人員,我認(rèn)為WeWork的實(shí)際業(yè)務(wù)和架構(gòu)問(wèn)題在于:
WeWork需要的只不過(guò)是清點(diǎn)進(jìn)出的人數(shù),然后對(duì)容量規(guī)劃做優(yōu)化而已,追蹤“氣壓”有什么用?只要你有WeWork的ID,那你肯定是個(gè)人或公司。那么,在大堂里安裝一個(gè)登記系統(tǒng),并要求會(huì)議系統(tǒng)發(fā)放名牌,不是更簡(jiǎn)單嗎?
第一項(xiàng)要求根本就不需要Kafka:?
目前WeWork有280個(gè)辦公間。假設(shè)每個(gè)辦公間平均每天有1000個(gè)(有這么多嗎?)成員出入。那么每天會(huì)產(chǎn)生280,000個(gè)事務(wù)。我們假設(shè)每個(gè)人在早餐時(shí)間進(jìn)來(lái)一次,在午餐時(shí)間出入各一次,然后離開(kāi)。那么每個(gè)人會(huì)產(chǎn)生4個(gè)事務(wù)。那么每天大約是100萬(wàn)個(gè)事務(wù),這點(diǎn)數(shù)據(jù)量存儲(chǔ)在最常用的開(kāi)源關(guān)系數(shù)據(jù)庫(kù)Postgres中就可以了。保守地說(shuō),Postgres每秒可以提供10,000次寫(xiě)入(如果設(shè)置得當(dāng),其寫(xiě)入次數(shù)會(huì)更高)。每天100萬(wàn)個(gè)事件,也就是每秒11次。根本就不是問(wèn)題。
至于第二項(xiàng)要求,受預(yù)訂會(huì)議室人數(shù)的影響,產(chǎn)生的數(shù)據(jù)量可能更高,但你不需要實(shí)時(shí)傳輸數(shù)據(jù)。你完全可以等到一天結(jié)束時(shí)批量處理或收集,這同樣可以利用司空見(jiàn)慣的關(guān)系數(shù)據(jù)庫(kù)。?
與大型Postgres(或者是BigQuery,或選擇其他關(guān)系數(shù)據(jù)庫(kù)連接到接收J(rèn)SON傳感器數(shù)據(jù)的Web服務(wù))相比,Kafka的日常開(kāi)銷要高出很多,因?yàn)榉植际较到y(tǒng)非常非常復(fù)雜,比傳統(tǒng)的系統(tǒng)復(fù)雜得多。
Kafka是一個(gè)非常優(yōu)秀的強(qiáng)大的工具,但各個(gè)公司在采用該軟件時(shí),需要三思而后行。殺雞焉用牛刀,WeWork用Kafka來(lái)記錄開(kāi)放辦公間的氣壓,實(shí)屬大材小用。?
雖然很多時(shí)候我們都不需要Kafka,但開(kāi)發(fā)人員很喜歡推薦這個(gè)工具,因?yàn)樗麄兛梢越铏C(jī)積攢經(jīng)驗(yàn)和談資。開(kāi)發(fā)人員喜歡用最尖端的技術(shù)來(lái)完成工作,有時(shí)甚至他們自己都沒(méi)意識(shí)到這一點(diǎn)。
過(guò)度架構(gòu)真實(shí)存在。Nemil在一篇文章中說(shuō):
在職業(yè)生涯的早期,你遇到的大量設(shè)計(jì)不良的軟件系統(tǒng)都要?dú)w咎于那些傳播錯(cuò)誤觀點(diǎn)的工程媒體。
在大學(xué)和培訓(xùn)班中,你對(duì)工程的了解主要來(lái)自工程媒體,例如 Hacker News、聚會(huì)、會(huì)議、Free Code Camp和Hacker Noon等。這些網(wǎng)站廣泛討論的技術(shù)(比如微服務(wù)、前端框架或區(qū)塊鏈)自然會(huì)現(xiàn)在你的技術(shù)棧中,雖然不是很必要。
使用這些技術(shù)棧會(huì)導(dǎo)致各個(gè)公司承擔(dān)不必要的債務(wù),導(dǎo)致他們不得不在風(fēng)險(xiǎn)投資周期中尋求更多的資金,無(wú)法邁向精益或從別人的資金中解脫出來(lái)。
這種不幸的趨勢(shì)只會(huì)持續(xù)下去,我們唯一能做的就是公之于眾。
福利
掃描添加小編微信,備注“姓名+公司職位”,加入【云計(jì)算學(xué)習(xí)交流群】,和志同道合的朋友們共同打卡學(xué)習(xí)!
推薦閱讀:
上萬(wàn)條數(shù)據(jù)撕開(kāi)微博熱搜的真相!
IT公司老板落水,各部門(mén)員工怎么救??
HTML 30 年進(jìn)化史
讀了鴻蒙 OS 的代碼后,我發(fā)現(xiàn)優(yōu)秀項(xiàng)目都有這個(gè)共性!
字節(jié)跳動(dòng)李航:自學(xué)機(jī)器學(xué)習(xí),研究AI三十載,他說(shuō)AI發(fā)展或進(jìn)入平緩期
主鏈增幅最高飚至152%,主流幣卻驚現(xiàn)回落;以太坊發(fā)幣速度持續(xù)放緩
真香,朕在看了!
總結(jié)
以上是生活随笔為你收集整理的“根本就不需要 Kafka 这样的大型分布式系统!”的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Boost:以协程的方式实现echo服务
- 下一篇: 华硕主板csm 怎么设置 华硕主板CSM