需要澄清十二要素应用程序宣言中的第八要素和守护进程
Clarification needed about the eighth factor of the Twelve-Factor App manifesto and daemonized processes
我指的是可以在此处找到的十二因素应用程序 "manifesto":http://12factor.net
作者在eighth factor中写道:
Twelve-factor app processes should never daemonize or write PID files.
Instead, rely on the operating system’s process manager (such as
Upstart, a distributed process manager on a cloud platform, or a tool
like Foreman in development) to manage output streams, respond to
crashed processes, and handle user-initiated restarts and shutdowns.
我不确定“进程永远不应该守护进程”是什么意思。
谁能解释一下守护进程的优缺点 - 特别是在 java 进程的上下文中?另外,守护进程不能由进程管理器管理吗?
如果一个进程 deamonized,这意味着它正在有效地尝试自行管理其生命周期。这对某些应用程序类型来说是好事,但对于分布式 Web 应用程序,也就是 12 要素宣言所涉及的应用程序类型,这通常意味着麻烦。如果一个应用试图自我管理,它可能不容易被外部流程管理器管理,或者在最好的情况下,这可能意味着需要这些管理器的自定义插件或扩展,这会使部署复杂化。
您想要对应用程序执行的操作以及守护进程可以阻止的操作的一个示例是自动缩放。使用 Mesos 等工具,您基本上是想告诉系统:“这是我的 50 台机器,现在将我的应用程序放在这些机器上”。您不想手动管理去哪里,而是让集群管理器自动处理它。它可能会根据条件自动设置更多或更少的实例,例如您的系统接收到多少流量,它可以将多个实例放在一台机器上。如果应用程序试图自我管理,它会干扰并使此类外部管理变得不可能或非常复杂。
我指的是可以在此处找到的十二因素应用程序 "manifesto":http://12factor.net
作者在eighth factor中写道:
Twelve-factor app processes should never daemonize or write PID files. Instead, rely on the operating system’s process manager (such as Upstart, a distributed process manager on a cloud platform, or a tool like Foreman in development) to manage output streams, respond to crashed processes, and handle user-initiated restarts and shutdowns.
我不确定“进程永远不应该守护进程”是什么意思。
谁能解释一下守护进程的优缺点 - 特别是在 java 进程的上下文中?另外,守护进程不能由进程管理器管理吗?
如果一个进程 deamonized,这意味着它正在有效地尝试自行管理其生命周期。这对某些应用程序类型来说是好事,但对于分布式 Web 应用程序,也就是 12 要素宣言所涉及的应用程序类型,这通常意味着麻烦。如果一个应用试图自我管理,它可能不容易被外部流程管理器管理,或者在最好的情况下,这可能意味着需要这些管理器的自定义插件或扩展,这会使部署复杂化。
您想要对应用程序执行的操作以及守护进程可以阻止的操作的一个示例是自动缩放。使用 Mesos 等工具,您基本上是想告诉系统:“这是我的 50 台机器,现在将我的应用程序放在这些机器上”。您不想手动管理去哪里,而是让集群管理器自动处理它。它可能会根据条件自动设置更多或更少的实例,例如您的系统接收到多少流量,它可以将多个实例放在一台机器上。如果应用程序试图自我管理,它会干扰并使此类外部管理变得不可能或非常复杂。