首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用时向所有应用程序荚加载平衡请求

如何在使用时向所有应用程序荚加载平衡请求
EN

Stack Overflow用户
提问于 2022-01-05 08:57:27
回答 1查看 196关注 0票数 0

我在Kubernetes中部署了一个带有两个吊舱的应用程序。如果我直接调用它的Kubernetes服务(http://app:8080),它将使用循环来平衡这两个荚之间的请求。

实际运行时在应用程序前面包含一个Spring pod,配置方式如下:

代码语言:javascript
复制
    @Bean
    fun customRouteLocator(builder: RouteLocatorBuilder): RouteLocator {
        logger.info("Gateway configuration: {}", gatewayConfigurationProperties)
        var routes = builder.routes()
        gatewayConfigurationProperties.routes.forEach { service ->
            routes = routes.route(service.key) { r ->
                r.path("${service.value.contextPath}/**")
                    .filters { filters ->
                        filters.requestRateLimiter { rateLimiterConfig ->
                            rateLimiterConfig.rateLimiter = RedisRateLimiter(1000, 1000)
                        }
                    }                  
                    .uri(service.value.uri)
            }
        }
        return routes.build()
    }
代码语言:javascript
复制
gateway:
  routes:
    app:
      uri: http://app:8080
      context-path: /app

我原以为网关会在两个吊舱之间分配负载,但是它会粘在其中一个豆荚上。

代码语言:javascript
复制
    -----------------------                 ------------ 
--->| spring-cloud-gateway |---calls-----> | app-pod-1 |
    -----------------------           X     ------------
                                      |
                                      |     ------------
                                      ---> | app-pod-2 |
                                            ------------ 

如何使网关使用循环来平衡请求?

我尝试用lb:// (uri: lb://app:8080)作为服务url的前缀,但是我得到了一个503错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-07 11:10:05

为了使分发负载,而不是粘在一个荚上,我不得不:

  1. 在网关URI中使用lb://而不是http://
  2. 添加以下依赖项:

代码语言:javascript
复制
implementation("org.springframework.cloud:spring-cloud-loadbalancer")
implementation("org.springframework.cloud:spring-cloud-starter-kubernetes-fabric8")

在此情况下,SCG将采用循环负载平衡。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70590120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档