Deployment Docker容器上的分布式系统NSQ拓扑模式

Deployment Docker容器上的分布式系统NSQ拓扑模式,deployment,go,docker,lxc,nsq,Deployment,Go,Docker,Lxc,Nsq,是否可以使用复制“”的最后一个示例中描述的“NSQ实时分布式消息传递平台”?有人有dockerfile或image示例吗?在我等待一些后台任务完成时,我将尝试一下 @Luca G.Soave提到的分布式消息平台可以在这里看到: 我相信这个问题的根源是一个致命的问题:对Docker容器是什么的误解 为了便于讨论,让我们假设Docker容器只是虚拟机的不同名称。“分布式系统可以用虚拟机构建吗?”这个问题并不太合适,因为它实际上只是一个配置、抽象和协调的问题 可以重新创建上图,使每个接触点/责任点(

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

在我等待一些后台任务完成时,我将尝试一下

@Luca G.Soave提到的分布式消息平台可以在这里看到:

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

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

可以重新创建上图,使每个接触点/责任点(节点)独立于Docker容器或虚拟机中。i、 e:

  • 每个API/nsqd节点都位于自己的容器中
  • 每个nsq_to_文件节点都位于自己的容器中
  • 每个nsqlookupd节点都位于自己的容器中
根据您设置Docker映像的方式,您可以通过多种方式实现此映像的分布式(多主机)版本。有些想法是:

  • 将容器内部端口映射到同一主机端口,并将节点配置为作为主机ip进行广播,以便当其他节点连接到它们时,它们在映射到容器的端口处锁定到主机的外部ip;从而直接连接到容器

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

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


我已经成功地将其用于小型部署,但对于大规模docker部署来说,它肯定不是一个很好的解决方案。

好问题,我想这将利用容器链接,关于GitHub的相关主题,有一个有趣的后续话题:拓扑问题仍在进行中,但由于Matt Reiferson(mreiferson:)@LucaG.Soave的工作,已经打下了良好的基础。我想给自己添加一个答案会很好。包括对NSQ官方Go软件包的引用:@eAbi很好,但这并不能回答我的问题。而且,据我所知,这与码头工人或集装箱运输业无关。如果我错了,请容忍我,这里再多解释一下/举个例子可能会有帮助。