Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.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
Spring boot Spring Cloud Ribbon客户端负载平衡器_Spring Boot_Kubernetes_Spring Cloud_Spring Cloud Netflix_Spring Cloud Feign - Fatal编程技术网

Spring boot Spring Cloud Ribbon客户端负载平衡器

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

我有一个关于Spring和Ribbon范围内的负载平衡的问题

我有一个微服务体系结构,其中包含多个服务。假设服务:A、B、C和D。所有服务都部署在云中。 在服务的前面是将请求转发到相应服务的LB

所有服务都是在Spring Boot中实现的。 每个服务都会创建Docker映像。每个服务都是容器化的。在本地设置中,我可以启动本地kubernetes集群中的所有服务。例如:

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

我需要每个服务几个实例,以及通过单个端点在服务之间进行通信(如上面的示例所示)

很抱歉问你这个问题,但我对春云库伯内特还很陌生。我读了很多书,但还是看不懂这部分

提前谢谢