7

是否可以使用Docker复制“拓扑模式”的最后一个示例中描述的“NSQ 实时分布式消息传递平台” ?有人有 dockerfile 或图像示例吗?

4

1 回答 1

2

在等待一些后台任务完成时,我将对此进行破解。

@Luca G. Soave 提到的分布式消息传递平台可以在这里看到: 来源:www.nsq.io/deployment/topology_patterns.html

我相信这个问题的根源有一个致命的问题:对 Docker 容器是什么的误解。

出于讨论的目的,让我们假设 Docker 容器只是虚拟机的不同名称。“可以用虚拟机构建分布式系统吗?”的问题。不太合适,因为它实际上只是配置、抽象和协调的问题。

上图可以通过每个接触点/责任点(节点)在 Docker 容器或虚拟机中自包含来重新创建。IE:

  • 每个 API/nsqd 节点都在自己的容器中
  • 每个 nsq_to_file 节点都在自己的容器中
  • 每个 nsqlookupd 节点都在自己的容器中

根据您设置 Docker 映像的方式,您可以通过多种方式实现它的分布式(多主机)版本。一些想法是:

  • 将容器内部端口映射到同一个主机端口,并将您的节点配置为将自己广播为主机 ip,这样当其他节点连接到它们时,它们会在映射到容器的端口上锁定主机的外部 ip;从而直接连接到容器。

  • 使用像consul这样的服务发现包来替换 nsqlookupd 以添加额外的元数据。docker如果您正在运行许多容器,每个容器都在内部绑定到同一端口(例如端口 9090),但允许主机上的进程管理随机外部端口映射,这将很有用。

由于这与 Docker 有关,最近在跨主机向相关容器广播信息方面取得了一些进展;这将是使用有关 nsqlookupd 容器的信息为 api/nsqd 容器播种的一种方法。

我已经成功地将MaestroNG用于小型部署,但它绝对不是大型 docker 部署的好解决方案。

于 2014-07-30T16:25:28.363 回答