我試圖更好地理解服務器語言/框架及其在微服務環境中使用的潛在優點和缺點。開發時間對我來說並不重要,因爲這是爲了我自己的個人項目,學習使用正確的工具解決問題對於我來說比開發構建服務所需的時間更重要。在選擇服務器語言時,我必須考慮除開發時間之外的其他因素嗎?
我越想越想,應該在90%的時間裏使用藥劑。究其原因有二:
1)併發意味着許多用戶可以點擊該服務沒有失敗
2)大多數微服務有0的處理開銷,他們打了一個數據庫,並返回一個JSON。即使用更快的語言觸擊數據庫所帶來的收益與使用更慢的語言無法區分。有問題的數據庫將確定返回數據的速度,而不是服務器語言,因爲數據庫實現本身將使用C++等低級語言編寫。 (這是真的嗎?Elixir + Postgresql比Go + Postgresql慢得多,甚至是Ruby + Postgresql?是Postgresql還是語言發出請求的瓶頸?)
假設上述2爲真,那麼它代表我之所以會在90%的時間內使用Elixir,是因爲我會得到一個面向未來的交通高峯期服務,並且它通常具有與任何其他數據庫檢索Rest API相同的執行速度。
其他服務需要像圖像識別服務一樣的處理器速度的10%時間我會用C++或Python實現,因爲它的圖像庫已經在C++中用於圖像識別(即Tensor Flow)。
這是一種考慮何時使用特定語言進行微服務的正確方法?如果不是,除了開發時間,我還應該考慮什麼?
@enzian這個問題對於程序員來說是不合適的 - 它會很快被拒絕並在那裏關閉,參見http://meta.programmers.stackexchange.com/questions/6483/why-was-my-question-關閉或投票表決/ 6490#6490推薦閱讀:** [Programmers.SE是怎麼回事?堆棧溢出指南](http://meta.programmers.stackexchange.com/q/7182/31260)** – gnat