gpt4 book ai didi

docker - 识别 docker swarm 中的不同副本

转载 作者:行者123 更新时间:2023-12-02 19:51:48 25 4
gpt4 key购买 nike

我正在使用 docker swarm 部署多个服务,这些服务通过 gRPC 在它们之间进行通信。每个服务都有多个副本,我使用客户端负载平衡来平等地与它们对话。我将服务域名作为环境变量传递,如下所示:service-name-1,service-name-2,service-name-3因为如果我依赖 dockers 默认负载均衡器,我只会连接到一个副本,因为 channel 保持打开状态。

我面临的问题是在我的 docker compose 上复制和粘贴服务 (service-name-4) 以创建新副本不是很方便。如果我可以在需要时扩展服务会更好:docker service scale service-name=4 .我想知道的是是否有一种方法可以区分 docker swarm 中的单个副本。

我知道用于负载平衡 gRPC 建议的“后备服务器”。我只想知道这个问题是否有任何直接的解决方案。

最佳答案

TL;博士
如果客户端数量远小于副本数量,请考虑使用后备服务器。否则,将作业留给 docker 并像上面指定的那样增加副本数是没有问题的。
详细描述
我最终为我的特定用例使用了后备服务器。但是,我在上面的帖子中描述的毕竟不是什么大问题。让我解释:
假设有服务 A,它通过 gRPC 与服务 B 对话。仅当 A 的客户端数量小于可用 B 副本的数量时,才会存在此问题。例如:A 的 2 个副本和 B 的 4 个副本。在这种情况下,A1 将连接(并保持打开的连接)到 B1,A2 将连接到 B2,使 B3 和 B4 处于空闲状态。
另一方面,如果客户端 A 的数量大于或等于可用副本 B 的数量,则服务将根据负载均衡策略有效地分配负载。例如 4 个 A 副本和 2 个 B 副本。在这种情况下,B1 将与 A1 和 A2 建立连接;剩下的交给B2。
可以提出关于丢失连接导致 B 服务分布不均匀的论点,但是,这在很大程度上取决于负载平衡策略。

关于docker - 识别 docker swarm 中的不同副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60142288/

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