gpt4 book ai didi

docker - 使用Docker和Consul进行微服务发现

转载 作者:行者123 更新时间:2023-12-02 19:06:54 24 4
gpt4 key购买 nike

我对构建微服务感兴趣,但是当我有一个微服务的多个实例时,我对服务发现的工作方式有些困惑。

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

我可以运行docker swarm来启动以获取这50个实例,但是如何将请求发送给其中的任何和一个,即我不想知道特定实例的确切容器名称,我不需要只要我健康,只要将我的请求发送到任何“OCR”容器中,就不必担心。

我该如何实现?

我一直在研究领事,这似乎很有希望。
我特别喜欢HTTP api,(尽管我不太确定如何检索感兴趣的服务的url。在每次请求之前都需要这样做以确保我指向的是健康的实例?)。

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

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

请让我知道我是否完全朝错误的方向前进。

如果有人也可以提出有关该主题的任何文章或书籍,我将不胜感激。

谢谢。

最佳答案

使用Docker Swarm模式时,您可以免费获得带有负载平衡的服务发现。
DNSRR是关键概念:https://docs.docker.com/engine/swarm/key-concepts/#load-balancing

假设您部署OCR-app
docker service create --network dev --name ORC-app --replicas 5 OCR-app:latest
在这种情况下, docker 管理器将在群网络的节点上部署OCR-app五次。属于同一docker网络dev的所有其他服务都可以通过其名称请求OCR-app。例如。 GET http://OCR-app:4000/do/something
在内部,docker swarm使用循环机制将请求自动转发到五个服务之一。

关于docker - 使用Docker和Consul进行微服务发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49210733/

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