Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 同一个dyno可以运行多个进程吗?_Amazon Web Services_Heroku_Microservices - Fatal编程技术网

Amazon web services 同一个dyno可以运行多个进程吗?

Amazon web services 同一个dyno可以运行多个进程吗?,amazon-web-services,heroku,microservices,Amazon Web Services,Heroku,Microservices,我正在创建运行多个微服务的小应用程序。我想有这个应用程序提供24/7,所以免费dyno小时对我来说是不够的。如果我升级到一个爱好计划,我将得到10种流程类型 我是否可以在每个进程(web)上运行另一个微服务,或者Heroku是否允许我在每个dyno上只安装一个web进程,而其他10个进程类型用于扩展我的应用程序?换句话说,如果我需要6个全天候运行的微服务,我应该购买6个hobby dynos吗?您只能有1个web进程类型。您可以水平扩展web进程以在多个dyno上运行(“水平可伸缩性”),但是您

我正在创建运行多个微服务的小应用程序。我想有这个应用程序提供24/7,所以免费dyno小时对我来说是不够的。如果我升级到一个
爱好
计划,我将得到
10种流程类型


我是否可以在每个进程(web)上运行另一个微服务,或者Heroku是否允许我在每个dyno上只安装一个web进程,而其他
10个进程类型用于扩展我的应用程序?换句话说,如果我需要6个全天候运行的微服务,我应该购买6个hobby dynos吗?

您只能有1个web进程类型。您可以水平扩展web进程以在多个dyno上运行(“水平可伸缩性”),但是您需要升级到至少标准的1x dyno类型才能做到这一点(即,如果您使用免费或业余dyno类型,则只能运行1个web dyno实例)

但是,除了web流程之外,您还可以实例化多个其他流程类型(例如“worker”流程)。这些将无法侦听来自客户端的HTTP/S请求,但可用于从web进程卸载长时间运行的作业


因此,如果您将4-6个微服务映射到Procfile中的不同进程类型,并且如果您的微服务本身不是web服务器,那么您可能可以使用hobby dynos。Heroku的默认模型是将进程类型映射到它自己的dyno:State

“应用程序中的每个dyno都将属于其中一个流程 类型,并将通过运行与 这是一种过程类型。”

e、 g.
heroku ps:scale worker=1
表示一种类型的
worker

其他人已经写过或打算在一个dyno中运行多个python进程,这些进程在
post\u编译
步骤中利用了一个辅助Procfile和其他slug设置。根据您选择的语言及其构建包,您可能会做类似的事情;但该官员没有列出这一步骤:/。这就是说,考虑到Heroku的基础,您可以使用
web:script.sh
进行任何进程的设置和执行

要在Docker容器中对多个进程进行分组,可以签出,这同样依赖于自定义的
CMD[“/start.sh”]
。请注意,这与Docker的单进程/每个容器的理念相反,并且可能会给您带来更多麻烦,例如将信号转发给子进程、设置所有微服务的丑陋Docker文件等(如果您决定使用多个容器,Heroku会启用writeup)

还有,别忘了你和你的朋友

当然,对于非玩具生产或长期开发维护,通常不建议在给定的dyno中使用多个过程

在一个dyno中组合多个进程很容易,只要它们都符合您的dyno内存限制(嗜好dyno为512M)


每个Heroku应用程序仍然只有一个HTTP端点,这意味着您的微服务将需要通过队列、发布/订阅或某些RPC集线器(如deepstream.io)进行通信。

Ok。明白你的意思了。有没有办法在一个dyno上部署多个微服务?例如,作为一组docker容器?您当然可以在一个dyno上运行多个进程,但这并不一定是推荐的。@Yonirabinovich那么这些“工作进程”(限于10个)与Gunicorn工作进程/OS进程之间的区别是什么?根据Heroku的说法,Hobby dyno最多可以有255个进程,而性能可以超过50K+