當前位置:編程學習大全網 - 編程語言 - “根本就不需要 Kafka 這樣的大型分布式系統!”

“根本就不需要 Kafka 這樣的大型分布式系統!”

作者 | Normcore Tech

譯者 | 彎月,責編 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下為譯文:

可能有人沒有聽說過Kafka,這是壹個非常復雜的分布式軟件,可協調多臺計算機之間的數據傳輸。更具體地說,該軟件的功能是“展平”數據,然後快速地將數據從壹個地方移動到另壹個地方。壹般來講,如果妳有很多數據需要快速處理並發送到其他地方,那麽就可以考慮壹下Kafka。Kafka還可以在壹定期限內保留數據,比如設置數據保存2天、3天或7天,如果妳的下遊流程失敗,那麽妳還可以利用存儲在Kafka中的數據重新處理。

許多處理匯總數據的公司(比如Facebook和Twitter等社交網絡數據,以及每晚需要處理大量星體運動的天文學家,或需要快速了解車輛周圍環境數據的自動駕駛車輛公司等)都在使用Kafka,將任意地方生產的數據(即用戶通過鍵盤輸入的數據,通過望遠鏡讀取的數據,通過車輛遙測讀取的數據等)移動至下遊流程進行處理和分析。

最近,WeWork更為名The We Company,他們在***享工作間領域取得了成功,其官網宣稱公司的使命為:

“提升世界的意識。”其核心業務是從房地產出租公司那裏租下辦公室,然後轉租給無法按照傳統流程租賃辦公室的個人和小公司。

為了“提升世界的意識”,該公司致力於為世界各地的個人和公司的團隊打造獨特卻又不完全相同的辦公空間。最近,該公司還開始涉足教育。

最近,因為上市,WeWork曝光了壹些財務信息:

從好的方面來看,根據A xi os的數據,2018年WeWork的入住率為90%,且會員總數在不斷增加。

有人常常將WeWork視為矽谷地區的公司過高估值的完美例子。作為壹家房地產企業,WeWork燒錢的速度非常快,毫無疑問他們必須努力讓公眾市場投資者相信公司有長遠的發展,同時和還要維護其作為 科技 公司的地位。

這家公司再三強調說它不是壹家房地產公司(畢竟它在不斷燒錢對吧?),那麽壹家消息中介技術公司究竟能提供什麽?WeWork曾宣布,它使用Kafka來實現“內部部署的物聯網需求”。這是什麽意思?

“我們的產品是物理空間,”WeWork的首席開發負責人David Fano說,他在會議期間穿著壹件印有“bldgs = data”字樣的T恤。

每個辦公室都有10個環境傳感器——小巧的壁掛式綠色盒子,這些傳感器可跟蹤室內溫度、濕度、空氣質量、氣壓和環境光線水平。還有20個白色的壁掛式信標,呈三角形分布在公***空間(開放式辦公區和會議室),用於測量WeWork成員的室內位置(數據是匿名的)。頂部四分之壹的傳感器通過計算機視覺觀察成員的活動。

換句話說,WeWork會跟蹤WeWork的多個物理事件並記錄所有這些數據。但是......他們真的有必要這樣做嗎?記錄Keith Harring壁畫周圍開放區域的環境溫度能給他們帶來怎樣的競爭優勢?更重要的是,他們能否將這些信息用到重要的項目中?

對於公司而言,重要的是要了解辦公室的“單位組合” ——私人辦公室、會議空間和開放式辦公桌——的比例,我們可以利用這些信息對下壹個辦公間作出調整。

我覺得這家新聞報道機構需要建立壹種思考技術的心理模型。Ben Thompson為Stratechery提供了出色的服務,他建立了聚合理論( /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等。這些網站廣泛討論的技術(比如微服務、前端框架或區塊鏈)自然會現在妳的技術棧中,雖然不是很必要。

使用這些技術棧會導致各個公司承擔不必要的債務,導致他們不得不在風險投資周期中尋求更多的資金,無法邁向精益或從別人的資金中解脫出來。

這種不幸的趨勢只會持續下去,我們唯壹能做的就是公之於眾。

原文: /p/you-dont-need-kafka

END

  • 上一篇:在新疆美到極致、海拔最高的高山湖泊,祝妳遇見漫天星河
  • 下一篇:雙光子動態治療有望成為腫瘤治療的新武器。
  • copyright 2024編程學習大全網