2014-03-04 81 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

相关问题