Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker和Concur的微服务发现_Docker_Microservices_Consul - Fatal编程技术网

Docker和Concur的微服务发现

Docker和Concur的微服务发现,docker,microservices,consul,Docker,Microservices,Consul,我对构建微服务很感兴趣,但当我拥有单个微服务的多个实例时,我对服务发现应该如何工作有点困惑 假设我有一个“OCR”应用程序,可以从图像中读取文本。 将其部署为1个实例很容易,但是,如果我想要50个这样的实例呢 我可以运行docker swarm来加速获取这50个实例,但我如何向其中任何一个发送请求,也就是说,我不想知道特定实例的确切容器名称,我不在乎得到哪一个,只要它是健康的,只需将我的请求发送到任何“OCR”容器即可 我如何做到这一点 我一直在调查领事,看起来很有希望。 我特别喜欢HTTP a

我对构建微服务很感兴趣,但当我拥有单个微服务的多个实例时,我对服务发现应该如何工作有点困惑

假设我有一个“OCR”应用程序,可以从图像中读取文本。 将其部署为1个实例很容易,但是,如果我想要50个这样的实例呢

我可以运行docker swarm来加速获取这50个实例,但我如何向其中任何一个发送请求,也就是说,我不想知道特定实例的确切容器名称,我不在乎得到哪一个,只要它是健康的,只需将我的请求发送到任何“OCR”容器即可

我如何做到这一点

我一直在调查领事,看起来很有希望。 我特别喜欢HTTP api(尽管我有点不确定如何检索我感兴趣的服务的url。是否需要在每次请求之前进行检索,以确保我指向的是一个健康的实例?)

如果我想使用Concur,与docker swarm相关的步骤是什么?当容器启动时,我是否只需要在Consor中注册服务,如果失败,它将自动取消注册?)

之后,我所有的容器只需要知道consor在哪里(我想我可以在它前面放一个负载平衡器,以防我想将consor本身扩展到一堆实例?)

如果我完全走错了方向,请告诉我

如果有人能推荐关于这个话题的文章或书籍,我将不胜感激


谢谢。

当您使用Docker Swarm模式时,您可以免费获得负载平衡服务发现。
DNSRR是一个关键概念:

假设您部署了
OCR应用程序

docker服务创建--网络开发--命名ORC应用--副本5 OCR应用:最新版本

docker manager将在swarm网络的节点上部署五次
OCR应用程序。属于同一docker网络的所有其他服务
dev
都可以通过其名称请求
OCR应用程序。例如,
GEThttp://OCR-app:4000/do/something

docker swarm内部使用循环机制将请求自动转发到五个服务之一