gpt4 book ai didi

docker - 动态可扩展和自适应架构

转载 作者:行者123 更新时间:2023-12-02 04:40:14 26 4
gpt4 key购买 nike

我是云计算专业的博士生,我计划在我的研究项目中使用基于微服务的架构以及 consul 和 Zeromq。我有几个我觉得难以理解的问题。有人可以帮我分享他们的经验吗?

  1. 我们有基于docker的微服务,我们有zeromq,我们有consul。您能提到我们如何将这三者结合在一起以获得动态自适应环境吗?
尽管我了解 Zeromq、docker 和 consul 分别是什么,但我仍然无法清楚地了解它们作为一个整体如何运作。我们有 docker 容器,在主机上的容器内运行着微服务。我们使用 Zeromq 在 Docker 容器之间传输(发布-订阅/管道)消息。容器可以在同一主机/数据中心或不同主机/数据中心上运行。然后我们使用 consul 进行服务发现。我的理解正确吗?

  • 架构如何根据工作负载动态扩展/缩减?
  • 比如说,我有一种情况,有时我需要更多的工作节点来进行特定的计算。谁启动更多数量的工作节点。哪个组件决定/做出这个决定?

    有调度组件吗?如果是这样,有人可以简要解释一下它是如何发生的或者哪个组件执行该功能吗?

  • 那么,领事的主要作用是什么?它只是用于服务发现吗?它也可以用于配置吗?如果是这样,它的局限性是什么?
  • 我发现即使zeromq也有服务发现机制,那么为什么我们需要consul呢?

  • 节点信息的故障如何在架构中传播?哪个组件负责?只是领事吗?或者还有zeroMq?
  • 请指教。

    最佳答案

    我参与了一个使用基于 Docker 的微服务和 Consul 的大型项目。 (我们使用的是不同的队列服务——RabbitMQ,所以我不能详细谈论这方面,但总的来说,队列就是队列。)

    据我所知,Docker、Consul 和任何队列技术都不​​提供自动缩放功能。 Docker 提供了一种简单的方法来启动服务的多个实例,Consul 提供服务发现(如您所说)和键/值持久存储。队列只是在服务实例之间传递消息的一种方式。您没有提到任何可以处理自动缩放的内容。

    要添加自动缩放功能,您需要查看 Kubernetes 之类的东西。

    您可以看看 CloudFoundry 或 Mesos 之类的东西。然而,这两者都需要虚拟化层,例如 OpenStack 或 VMWare vSphere。这些产品带来了巨大的值(value),但也带来了价格和复杂性。

    我建议您不要走这条路,而是查看 Amazon Web Services。使用 AWS,您可以轻松运行 docker 容器,并根据 CPU 负载、队列中的消息、一天中的时间(或一周中的某一天)等设置自动缩放。我知道使用 AWS 需要付出一定的代价,但如果设计和管理良好的话,它的成本远低于尝试自己设计、实现和维护。您还可以使用最小的(即免费的)机器和/或现货实例来最大限度地降低成本。

    关于docker - 动态可扩展和自适应架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33556707/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com