gpt4 book ai didi

microservices - 微服务,客户端发现

转载 作者:行者123 更新时间:2023-12-01 22:18:09 37 4
gpt4 key购买 nike

我是微服务的新手,所以在阅读它时,在谈论负载平衡时我无法理解下面的段落,客户端如何做这样的事情?

“使用客户端发现时,客户端负责确定可用服务实例的网络位置以及它们之间的负载均衡请求。

最佳答案

微服务架构涉及许多可能具有层次依赖性的服务。例如,服务 A 依赖于服务 B,服务 B 又依赖于服务 C,依此类推。同样,每个服务可以有多个实例,并且它们的部署位置可能会动态变化。例如,服务 C 的点击次数过多,您可以动态扩展/缩减此服务。

通常,最终用户无法直接访问任何这些微服务。它只能通过位置固定的边缘服务访问,比如 www.microservice.com/apis,并将负责进行身份验证、速率限制等。因此,所有服务调用都将通过边缘服务并加载此阶段的平衡主要是使用硬件负载平衡器或 Amazon ELB 实现的。

现在,假设用户想要访问服务 A。他必须通过边缘服务,边缘服务会将请求委托(delegate)给服务 A。服务 A 必须调用服务 B 以获取一些信息。在这种情况下,服务 A 是服务 B 的客户端,服务 A 需要找到 B 的所有可用实例,然后调用其中一个实例。这是像 Consul 这样的微服务注册表的地方。 , Eureka等等进入画面。每个服务实例将不断更新其状态(IP、端口、Up/Down 等)到注册中心。边缘服务也将使用此注册表来查找服务 A 的实例位置。

服务 A 还应确保对服务 B 的所有调用都是负载平衡的。这里用ELB做负载均衡是不可行的,因为这意味着如果你有50个服务,你就需要有50个ELB。有一些软件负载平衡器可以更有效地做到这一点。例如:Ribbon是一个很好的 Http 客户端库,支持用 Java 编写的负载均衡器。

关于microservices - 微服务,客户端发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42549749/

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