微服务架构最佳实践

时间:2019-12-14 04:02:15

标签: docker microservices

我不知道这是否是解决这个问题的合适平台,无论哪种方式,我都在尝试微服务,已经使用了一段时间(虽然时间不长),并且停留在正确的体系结构上,或者说是最佳实践:

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

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

2 个答案:

答案 0 :(得分:1)

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

微服务的一个主要目的是将不同组件的发布周期以及业务部门的发布周期解耦。为此,必须为每个微服务使用单独的图像。

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

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

答案 1 :(得分:0)

如Docker在其文档中所述,您应该在各自的容器中运行每个“服务”(例如PostgreSQL,node.js服务器,Python服务器),以便分开关注。这样可以提供更好的可维护性,并允许每个容器具有多个实例(例如,数据库有1个实例,服务器有3个实例。

这类问题更适合于软件工程StackExchange网站:https://softwareengineering.stackexchange.com/