2014-03-04 49 views
2

我是Heroku新手,我對如何最好地組織我的JAVA應用程序以在平臺上運行有疑問。在單個應用程序中組織多個端點的最佳方式

我正在開發的應用程序將公開3個REST端點。爲了正確縮放應用程序,我正在考慮在專用測功機上運行每個端點。每個端點背後的邏輯並不是很複雜,我計劃將其保留在運行端點的Web dynos中。

目前我有一個單一的應用程序,所有3個端點運行在同一個web dyno上。 什麼是分離我的應用程序的最佳方式,以便我可以爲每個端點設置一個流程類型? 我應該創建3個不同的應用程序(每個進程類型一個)還是我可以在單個應用程序中定義多個進程類型(JAVA命令?)?我的procfile會是什麼樣子?

+0

注意:我發現這個[link](http://stackoverflow.com/questions/12429687/heroku-cedar-application-with-multiple-web-facing-processes/12431992#12431992)這有點相關但是並沒有真正描述如何組織多個端點的最佳實踐 – edopuck

回答

0

我想大多數人會有一個應用程序,並隨着負載的增加適當地調整dynos。這是Heroku的好處,如果您的應用設計正確,您只需添加更多的dynos即可擴展。

我不認爲這是一個Heroku問題,但更多的是你的應用程序體系結構的問題,如果沒有更多的信息將會很難評論(以及我沒有的Java知識; )

+0

正如你所建議的那樣,應用程序需要以與Heroku如何擴展其資源(即dynos)兼容的方式進行架構。 Heroku表示,每個dyno將運行一個「流程類型」,並且[可以定義包含多個流程的單個應用程序](https://devcenter.heroku.com/articles/runtime-principles)。我想現在我的問題變成了更多的與JAVA相關的問題:我如何在同一個應用程序中定義多個進程,命令或入口點,以便它們可以單獨分配給專用的dynos? – edopuck

+0

是的,您可以擁有包含多個進程的單個應用程序,但通常這些應用程序可以用於不同的目的。例如,您可能有3個運行**網站**的應用程序的部分(可能包含3個不同端點)和1個運行後臺進程異步發送電子郵件的dyno的3個dynos(或進程)。 – jordelver

相關問題