我是一名云计算博士生,我计划将基于微服务的架构与 consul 和 zeromq 一起用于我的研究项目。我有几个我很难理解的问题。有人可以帮我分享他们的经验。
- 我们有基于 docker 的微服务,我们有 zeromq,我们有 consul。你能提到我们如何将这三者结合在一起以形成一个动态的自适应环境吗?
尽管我了解 zeromq、docker 和 consul 分别是什么,但我仍然无法清楚地了解它们是如何作为一个整体发挥作用的。我们有 docker 容器,其中在主机上运行着微服务。我们使用 zeromq 在 docker 容器之间传输(Pub-sub/pipeline)消息。容器可能在相同的主机/数据中心或不同的主机/数据中心上运行。然后我们使用 consul 进行服务发现。我的理解是否正确?
- 架构如何根据工作负载动态扩展/缩减?
比如说,我有一段时间需要更多工作节点来进行特定计算。谁启动了更多数量的工作节点。哪个组件决定/做出这个决定?
有调度组件吗?如果是这样,有人可以简要解释它是如何发生的或哪个组件执行该功能吗?
- 那么,领事的主要作用是什么?它仅用于服务发现吗?它也可以用于配置。如果是这样,它的局限性是什么?
我看到即使是zeromq也有服务发现机制,那我们为什么需要consul呢?
- 节点信息的故障如何在架构中传播?哪个组件负责?只是领事吗?还是 zeroMq 也是?
请指教。