Spring boot Spring Cloud Ribbon客户端负载平衡器
我有一个关于Spring和Ribbon范围内的负载平衡的问题 我有一个微服务体系结构,其中包含多个服务。假设服务:A、B、C和D。所有服务都部署在云中。 在服务的前面是将请求转发到相应服务的LB 所有服务都是在Spring Boot中实现的。 每个服务都会创建Docker映像。每个服务都是容器化的。在本地设置中,我可以启动本地kubernetes集群中的所有服务。例如:Spring boot Spring Cloud Ribbon客户端负载平衡器,spring-boot,kubernetes,spring-cloud,spring-cloud-netflix,spring-cloud-feign,Spring Boot,Kubernetes,Spring Cloud,Spring Cloud Netflix,Spring Cloud Feign,我有一个关于Spring和Ribbon范围内的负载平衡的问题 我有一个微服务体系结构,其中包含多个服务。假设服务:A、B、C和D。所有服务都部署在云中。 在服务的前面是将请求转发到相应服务的LB 所有服务都是在Spring Boot中实现的。 每个服务都会创建Docker映像。每个服务都是容器化的。在本地设置中,我可以启动本地kubernetes集群中的所有服务。例如: kubectl get deployment 将导致: NAME READY UP
kubectl get deployment
将导致:
NAME READY UP-TO-DATE AVAILABLE AGE
A 1/1 1 1 9h
B 2/2 2 2 59m
C 1/1 1 1 9h
....
在K8S服务B中运行时,可以通过以下方式访问服务A、C或命名空间中的任何其他服务:
public String getResponseFromService() {
return this.restTemplate.getForObject("http://service-a:8080/deals", String.class);
}
如果我有N个服务A的实例,那么在默认情况下会激活一个循环规则,并且每次节点B调用服务A时都会获取随机服务器
问题:
这是否意味着k8s本身充当负载平衡器,并将来自节点B到服务A的请求重定向到其中一个实例
如果上述情况属实,为什么我需要Ribbon client LB。我知道它使用discovery client来检查服务注册表中已注册的K8服务,但如果我不关心注册表,我是否需要Ribbon
我需要每个服务几个实例,以及通过单个端点在服务之间进行通信(如上面的示例所示)
很抱歉问你这个问题,但我对春云库伯内特还很陌生。我读了很多书,但还是看不懂这部分
提前谢谢