有密集型(高頻) https api 請求的需求,該用什麼技術棧?

時間 2021-05-31 06:09:37

1樓:Heroic Ballieas

你可能對技術有什麼誤解。

舉個例子,可能不太貼切。你想吃麵條,一開始的時候你說一秒就吃一根,你問別人怎麼吃。別人說你這都不會不理你了。

你很傷心,然後你想那就高階一點唄,怎麼在一秒鐘之內吃百萬甚至千萬根麵條。

怎麼辦,我們也很絕望啊。只有等進化了,電腦用四五十年的時間完成了到現在的進化。你要多等等,等幾年或者十幾年應該就可以了。

2樓:

首先需要分解業務型別!

API和100萬頁面其實是差不多道理!

看起來很好!其實壓力最後都是DB的~

考慮好怎麼處理DB壓力!

均衡!橫向擴充套件!

問題應該不是很大吧!

3樓:李銘昕

這麼多答案都說不可以,是我沒看懂題目麼?準備10000臺機子,然後排列成樹,給父主機乙個訊號,然後分別像他的孩子們傳送訊號說,幾點幾點我要開始請求api,大家做好準備,然後到點的時候每台主機併發請求100個api,不就行咯???

4樓:

一秒鐘向一百萬個api發出請求,關鍵在於response.在你這裡,同步的表示你要維護一百萬個處理執行緒,不現實,一般做非同步處理。其實你們別笑樓主,他的技術術語不過關,如果我用古典術語就很容易解決這個問題:

廣播+MQ

5樓:pyy

作為客戶端一秒要請求1M次,兩台單機間理論最大也就是65535個鏈結。

方便計算你的乙個客戶機開5W個請求吧,20臺機器大概可以滿足題主的要求。

但是考慮到題主未來是要幹大事的人建議把tcp協議改了頭部改了,把埠位元組長度改成20個位元組,這樣子兩台單機間就可以進行2**20 大概是100W的鏈結了。

建議題主把設計tcp的那個人請過來讓他給你搞。免得被人坑。。。100W也不多是吧。

6樓:yoom

要看具體場景。

這個介面只返回寫死的hello world嗎?那直接用nginx就行了。

如果伺服器收到後,還有邏輯例如查詢資料庫,那根據木桶理論,即使你的go或nodejs響應效能趨向無限大,最終瓶頸還取決於資料庫的效能。

簡單來說,請求到響應,會發生很多事情。

頻寬,延遲,資料庫響應時間,cpu,記憶體都會有影響。這是全鏈路調查清楚後,才能做更合理的選擇。

請求到響應,是一場接力賽。n個選手都要強才強,否則會影響總成績。

如果你只是學習,nodejs和go都滿足你。

7樓:

答主水平太弱雞了,連問題都說不清楚,再修改一下問題吧。

一秒鐘100w次api呼叫是有可能的,但對於同乙個裝置來說不太可能?題主要問的問題是不是從100w個裝置中讀取資料?

無非就兩種,一種是短鏈結,由客戶端上報。

第二張就是長連線,服務端主動去查詢。不過一般情況下一台伺服器是撐不起來的,都是要考慮分服負載均衡之類的問題。

不過我覺得你的水平,不足以完成這樣子的設計。好好去學習一下

8樓:王旭競

這是要做核心訊息匯流排嗎?做這麼極限效能的事情,基本算是只有c/c++來試試了。完全非同步處理,一半程式只管發資料,不等待業務執行,還是可以的。

另一半程式只管收。接收埠在傳送請求裡約定好。

9樓:Vincross

具體傳送請求的技術棧用什麼都行。

重點是,每秒達到1M這個數量級的對外請求,絕對不是一台主機能搞定的,先別說發起請求消耗的資源了,光是連線數就超了上限。

所以你真正需要的是中等以上規模服務集群的排程、監控、負載均衡、彈性伸縮……這些技術才是真正有意義的,比起選擇最前端發起請求的語言重要多了。

--------吐槽分割線--------

看了一下題主更新的日誌,原來最早說的是每秒一次這種「密集」請求啊,被嘲諷了之後直接改為每秒一百萬個請求,還是不同API。

你真的清楚一百萬是什麼數量級麼?這滿嘴跑火車的毛病還是改改吧,簡直跟小學生吹牛一樣:

——「我這包零食可貴了!五塊錢呢!」

——「哈哈哈五塊錢算什麼貴」

——「這個不貴怎麼了?我叔叔上次給我帶的進口零食,五十萬億一包呢!」

10樓:

我覺得提問的人實際遇到的問題就是IO密集型,如何併發發起100W次對某個介面進行請求。我覺得可以簡化成多執行緒的處理IO密集型:執行緒數= CPU核心數/(1-阻塞係數),至於說阻塞係數怎麼設定,我覺得可以自己多嘗試看看,至於說linux埠的限制,實際上你的執行緒理論上很難達到6W多。

現在還有協程等相關方案,我也正在看,不好說。因為我這邊也遇到類似問題,如何將大量資料通過dubbo介面完成同步互動。

11樓:魚你太美

客戶端還有啥技術棧?該開執行緒的開執行緒,該非同步的非同步,用http keep-alive每秒調100w次helloworld說不定有戲。

12樓:Jim Liu

嚯,這厲害了,跳過C10K,C100K了,直接上C1M了,我滴媽,問題裡的這種場景,我摳破頭皮,覺得可能是想一秒鐘抓100萬個網頁,而且100萬(以及未來可能1000萬)這個數明顯就是拍腦袋想出來的,沒什麼實際依據。真正有這個能力的架構師,都不會脫離實際場景做設計的。

13樓:謝然

每秒請求100w個不同的介面,你確定你的需求是正常的?確定不是系統的設計本身不合理?

如果這100w個介面在同乙個伺服器上,你知道兩個單機(乙個伺服器端口)之間同時最多只能建立65536個TCP連線嗎?而且這些連線不可能在1秒內全部建立完成。

如果是多機,你確定們公司有100w臺伺服器?

最後,如果真是這樣,那麼我建議你別用執行緒模型,幾萬個執行緒不說佔CPU,怎麼也得佔很多記憶體吧。

題主真的不是來釣魚的?

14樓:

我猜你想說的是每客戶每秒一次?那麼估算下有多少客戶的話可以更方便的解決此問題

問題改了。。

如果是100w的話。。上分布式啊,這個和語言關係就不大了,你需要乙個架構師

15樓:

我能不能說我只聽說過IO密集型和CPU密集型?

密集型請求是什麼?

順便你這請求量。。還有必要做技術選型?隨便搞也沒問題吧。。

16樓:謝慕安

一秒一次不密集啊。

1QPS。

如果你對這個請求的響應時間很長,比如超過一秒,而同時會有多個客戶端併發來請求

那麼先多開幾個程序(前面加nginx)、一台機器扛不住了,再加機器。

剛需的 知識密集型的產品有哪些?

連過十人 多讀書,社會 心理 歷史 商業,哲學都讀點。技術迭代太快,產品也是有壽命的,唯有人性是不變的,本質上是趨同的!年輕的時候關注點變化的事物,希望你更能關注不變的東西。 King 在國家推進高科技發展的今天,目前尤其推進是工業4.0,5G技術後,針對計算機畢業生,可以考慮以下幾個方向 1 工業...

勞動密集型企業怎麼進行管理?

合易管理諮詢 勞動密集型企業的管理主要是人員的管理,特別是一線員工的管理,通過持續的培訓 5S的匯入,不斷提公升員工主觀能動性 養成良好的意識和習慣,這是長期和持續改善的過程,在此期間,利用IE工具,對各個工序進行時間動作分析,通過ECRS對製程進行生產再平衡,推進生產標準化的程序,通過SOP來減少...

2021 03 05 go中,io密集型的應用,比如有很多檔案io,磁碟io,網路i 如何解答呢?

qiyaqingli 調節這個引數影響的是P的個數,也就影響了M 執行緒 幹活的個數。相當於你可以有更多的執行執行緒。先以網路io來說,網路io 在golang 裡面是非同步的,用epoll池做的io復用。每個網路呼叫其實都是非同步的,發資料給到記憶體,排程權就可以讓給其他goroutine了,所以...