Spring微服务中的粘滞会话负载平衡[已关闭]

ih99xse1  于 2022-11-21  发布在  Spring
关注(0)|答案(1)|浏览(279)

**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。

我们不允许问题寻求书籍、工具、软件库等的建议。您可以编辑问题,以便使用事实和引文来回答。
3天前关闭。
Improve this question
我是Spring的新手,正在尝试对粘性会话负载平衡进行概念验证(我正在使用Eureka 进行服务发现,Spring云网关和Spring云负载平衡器,它现在以循环方式工作)。我无法实现粘性会话lb。有人能帮助我吗?或者分享代码(用于粘性会话负载平衡器),我可以看到和学习。

lg40wkob

lg40wkob1#

默认情况下,Spring云负载平衡器(请参阅此处的配置)使用round-robin load balancing
要更改此设置,请在Spring Cloud Gateway中使用RequestBasedStickySessionServiceInstanceListSupplier
通过设置应用程序上下文(bootstrap.yml):

spring.cloud.loadbalancer.configurations: request-based-sticky-session

或者创建一个bean:

public class CustomLoadBalancerConfiguration {

    @Bean
    public ServiceInstanceListSupplier discoveryClientServiceInstanceListSupplier(
            ConfigurableApplicationContext context) {
        return ServiceInstanceListSupplier.builder()
                    .withDiscoveryClient()
                    .withRequestBasedStickySession()
                    .build(context);
        }
    }
}

Spring文档

  • https://docs.spring.io/spring-cloud-commons/docs/current/reference/html/#request-based-sticky-session-for-loadbalancer注意:注意cookie处理。

包含相关技术(Eureka 、Spring Cloud Gateway)和完整样板代码的中型文章:

如果你必须使用stick-load balancing,我鼓励你理解为什么会这样。请调查为什么你需要使用它,并在理想情况下调整你的应用程序,使其不依赖于传递到同一服务器的请求。请阅读以下内容,了解不使用它们的原因:

一般来说,我认为必须使用粘滞会话表明体系结构不是最佳的。

相关问题