Heroku免费计划单Dyno部署多微服务可行性及相关问题咨询
Heroku免费计划与微服务部署问题解答
嘿,我来逐个拆解你的问题,都是基于Heroku免费计划的实际使用经验,应该能给你清晰的答案:
1. 仅拥有1个免费Dyno时,能否在Heroku免费计划中创建包含多个微服务的应用?
当然可以创建多个微服务对应的应用,但没法让它们同时运行。免费账户只有1个空闲的免费Dyno,这个Dyno同一时间只能支撑一个运行中的应用实例。你可以手动切换哪个微服务占用这个Dyno启动,但同一时刻只能有一个微服务在线,其他的会处于休眠或无法启动状态。
2. 是否每个微服务都必须部署为一个独立的Heroku应用?
从微服务的核心设计目标(独立部署、独立伸缩、隔离故障)来说,是的,每个微服务都应该部署为独立的Heroku应用。
当然你也可以把多个微服务打包到同一个Heroku应用里,通过Procfile定义多个进程来启动它们,但这样做就失去了微服务的优势——它们会共享同一个应用的资源、部署流程和配置,一旦其中一个出问题,可能影响整个应用,也没法单独对某个微服务进行扩缩容。所以如果要严格遵循微服务架构,独立应用是标准做法。
3. 这是否意味着1个Dyno只能运行1个Heroku应用,还是可运行多个Heroku应用(即多个微服务)?
一个Dyno只能运行一个Heroku应用的实例。每个独立的Heroku应用至少需要1个Dyno来运行(免费应用默认分配1个免费Dyno)。
如果是把多个微服务塞进同一个应用里,这个应用的Dyno可以同时运行多个进程(比如web服务和后台worker),但这本质上还是一个应用,不是多个独立的微服务应用。而如果是多个独立的Heroku应用(对应不同微服务),每个都需要自己的Dyno,免费计划只有1个免费Dyno,所以你只能让其中一个应用处于运行状态。
内容的提问来源于stack exchange,提问作者Andriy Kryvtsun
相关产品推荐
相关产品推荐

