首页 > 解决方案 > 微服务架构最佳实践

问题描述

我不知道这是否是解决这个问题的正确平台,无论哪种方式,我都在涉足微服务,虽然时间不长,但已经进入了一段时间,并且停留在正确的架构上,或者更确切地说,是最佳实践:

哪个更好,为什么将微服务架构应用程序的所有服务都放在一个 docker 中并并行运行多个容器,或者让每个服务在它们自己的 docker 容器中运行(每个 docker 可以在多个实例中运行)?

PS服务不一定要使用docker运行

标签: dockermicroservices

解决方案


在单独的容器中运行每个服务。

微服务的一个关键目标是解耦不同组件的发布周期,从而解耦业务单元。为此,必须为每个微服务使用单独的图像。

其次,理想情况下,Docker 容器应该只在前台运行一个进程,因为编排器会查看该进程以帮助管理容器生命周期。为了方便起见,有时我会在同一个容器中运行辅助进程,但最好将它们设置为“sidecar 容器”。将多个服务放在一个容器中意味着流程监控 - 重新启动等现在是您的问题,而不是编排器的问题。

最后,为每个服务使用单独的容器将允许它们独立扩展,因此如果您需要 100 个服务 A 的实例来处理负载,您不必同时运行 100 个服务 B、C 和 D 的实例。


推荐阅读