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了,所以...