2

Spring Cloud Kubernetes 是否支持 Spring Cloud Loadbalancer?

我将在 Kubernetes 上部署 Spring Boot 应用程序,并通过以下链接使用功能区客户端执行客户端负载平衡https://cloud.spring.io/spring-cloud-static/spring-cloud-kubernetes/2.0.0.M1/参考/html/#ribbon-discovery-in-kubernetes

我想使用新的 Spring 云负载均衡器而不是 Ribbon 客户端。

4

2 回答 2

1

是的,它确实。一个完整的例子可以在这里找到 - https://github.com/dhananjay12/spring-microservices-using-spring-kubernetes

基本上,遵循依赖就可以了

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-kubernetes</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  <exclusions>
    <exclusion>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-archaius</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    </exclusion>
    <exclusion>
      <groupId>com.netflix.ribbon</groupId>
      <artifactId>ribbon-eureka</artifactId>
    </exclusion>
  </exclusions>
</dependency>
于 2020-07-15T10:35:34.143 回答
0

我迟到了,但想分享对 Spring Cloud LoadBalancer的支持是去年添加到 Spring Cloud Kubernetes中的,它很有魅力。从Spring Cloud 2020.0 开始。(又名 Ilford),它是默认的客户端负载均衡器,因此您不再需要排除功能区

我建议org.springframework.cloud:spring-cloud-starter-kubernetes-client-all在您的项目中包含依赖项,以利用 Spring Cloud Kubernetes 启用的所有细节。

在 Kubernetes 上使用 Spring Cloud LoadBalancer 的最典型方式是使用服务发现。如果您的类路径上有任何DiscoveryClient,则默认的 Spring Cloud LoadBalancer 配置使用它来检查服务实例。因此,它仅从启动并运行的实例中进行选择。所需要的只是注释您的 Spring Boot 应用程序@EnableDiscoveryClient以启用K8s-native Service Discovery

您可以在 Spring Cloud Kubernetes文档中阅读更多相关信息。

于 2021-07-26T22:08:24.693 回答