You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将InMemoryWebSessionStore的总存储会话数调至最大?

解决InMemoryWebSessionStore会话总数上限问题

此问题并非关于并发用户会话,而是内存中可存储的会话总数达到上限导致报错,报错日志如下:

java.lang.IllegalStateException: Max sessions limit reached: 10000
    at org.springframework.web.server.session.InMemoryWebSessionStore$InMemoryWebSession.checkMaxSessionsLimit(InMemoryWebSessionStore.java:276)
    at org.springframework.web.server.session.InMemoryWebSessionStore$InMemoryWebSession.save(InMemoryWebSessionStore.java:251)
    at org.springframework.web.server.session.DefaultWebSessionManager.save(DefaultWebSessionManager.java:123)
    at org.springframework.web.server.session.DefaultWebSessionManager.lambda$null$0(DefaultWebSessionManager.java:88)
    at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113)
    at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:272)
    at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:230)
    at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171)
    at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:236)

你创建的Bean写法是正确的:

@Bean
public InMemoryWebSessionStore inMemoryWebSessionStore() {
    InMemoryWebSessionStore inMemoryWebSessionStore = new InMemoryWebSessionStore();
    inMemoryWebSessionStore.setMaxSessions(-1);
    return inMemoryWebSessionStore;
}

InMemoryWebSessionStore默认最大会话数为10000,设置setMaxSessions(-1)会取消会话总数限制。但需要注意,无限制存储会话可能引发内存占用过高的问题,建议根据业务实际情况设置合理上限,或考虑用Redis等分布式会话存储替代内存存储,避免单点内存压力。

内容的提问来源于stack exchange,提问作者matt2022

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:31:05