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