我的主要应用程序需要Bluemix上的node.js运行时。但是,我的应用程序的其他组件需要Python和Java。当我推送我的应用程序时,如何让Bluemix完成所有3个运行时?
答案 0 :(得分:1)
如果您需要三个不同的运行时,您的应用程序中很可能有多个组件(在本例中为node,python和java组件)。如果将应用程序分解为许多使用REST来回传递数据的较小应用程序,则可能更容易维护和调试。这需要一些额外的工作,但好处可能是值得的。
如果您确定需要多个构建包,则可以使用GitHub中的heroku-buildpack-multi来引入多个构建包,但这可能需要您维护不稳定的配置,从长远来看可能会导致问题。尽管如此,如果您创建指定其他构建包的.buildpacks
(完整URL引用),则可以执行此操作。
答案 1 :(得分:0)
我建议遵循微服务架构,并将三个应用程序中每个应用程序的部署生命周期分开。您可以为每个应用程序提供manifest.yml文件,并在需要更新时推送该应用程序。这允许您单独缩放它们。
如果您确实需要同时推送和更新所有3个应用程序,您可以编写一个简单的脚本,对每个清单执行cf推送。
public class TestGarbage1 {
public static void main(String args[]) {
String m = "JAVA";
System.out.println(m.hashCode());
m = "java";
System.gc();
System.out.println(m.hashCode());
m = "JAVA";
System.out.println(m.hashCode());
}
}
您还可以在一个清单文件中定义多个应用程序 https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#multi-apps
cf push -f ./some_directory/application1/
cf push -f ./some_directory/application2/
cf push -f ./some_directory/application3/