【问题标题】:Microservices architecture best practises [closed]微服务架构最佳实践 [关闭]
【发布时间】:2020-04-07 11:24:49
【问题描述】:

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

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

P.S.服务不一定要使用 docker 运行

【问题讨论】:

    标签: docker microservices


    【解决方案1】:

    正如 Docker 在他们的文档中所说,您应该在他们自己的容器中运行每个“服务”(例如 PostgreSQL、node.js 服务器、Python 服务器),以便分离关注点。这样可以提供更好的可维护性,并让每个容器都有多个实例(例如,1 个用于数据库,3 个用于服务器)。

    这类问题更适合 Software Engineering StackExchange 站点:https://softwareengineering.stackexchange.com/

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2019-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-24
        • 2013-09-03
        • 2014-06-12
        相关资源
        最近更新 更多