比方說,當用戶登錄到Web應用程序時,他會看到一個信息列表。這個MEAN堆棧設計模式適合1,000-10,000個用戶規模嗎?
假設的信息列表由兩個DYNOS(通過Heroku的)中的一個服務,但信息列表從單蒙戈數據庫(即的NodeJS DYNOS只是過客蒙戈信息來源於當他登錄到webapp時給用戶)。
問題:假設我想有可能使用戶既修改和添加到的信息列表。
在1,000-10,000的用戶的比例是合適的以下策略:
- 用戶修改/添加到數據; HTTP POST被髮送到具有更新數據的兩個nodejs dynos中的一個。
- Dyno(無論哪一個)都需要修改/添加數據,並直接查詢mongo數據庫以更新數據。
- Dyno向客戶端發送更新成功的確認信息。
可以嗎?我需要添加更多的dynos(heroku)嗎?我基本上擔心,如果一羣用戶試圖一次訪問單個數據庫,速度會很慢,或者我以某種方式冒着損失1,000-10,000人的整個數據庫的風險。這種恐懼是否合理?
所以瓶頸不會是節點dynos,這將是事實,只有一個分貝?你是什麼意思「在資源消耗時啓動一個新實例」 - 在節點中創建一個新實例? – George 2015-04-05 19:21:05
@George好吧不一定,但除非你的應用程序是CPU密集型的,否則你的瓶頸很可能就是數據庫的寫入/讀取。 1k-10k不是大量的用戶,除非他們都決定在同一秒內使用它。您是否已經與您的用戶打過這個號碼?我在EC2實例中使用了「實例」一詞,但我的意思是在您的情況下使用Dyno。 (Dynos是EC2實例的部分用途)。Heroku有Adept Scale,它可以自動+/- +/- Dynos,但你仍然需要優化你的應用程序以正確使用它。起點https://devcenter.heroku.com/articles/node-concurrency – 2015-04-05 21:51:17