想象一下,我有一个应该在Consul注册的应用程序。谁应该这样做:应用程序本身,或负责启动它的任何初始化系统?
例如,使用systemd
,将服务注册放到ExecStartPost
似乎是显而易见的。另一方面,让应用程序本身处理此任务可能更好。
哪一个是最佳做法?
实际上初始化系统无法知道一些具体的应用细节。所以在我看来,应用程序对它可以提供的服务了解得更多。所以他们应该在SD系统中注册。
例如:
app1
注册为HTTP APIv1和APIv2服务,
app2
注册为HTTP APIv3服务
app3
仅注册HTTP Web服务
在这种情况下,您的应用程序可以更独立于特定的初始化系统。例如:systemd
,runit
,ubuntu init
或docker-related