Spring Session Redis с Sticky-сеансом на стороне сервера для журнала

Привет, я настроил Redis в моем проекте Spring для использования Spring Session, я использую Jedis 2.9.0, и он работает хорошо. У меня проблема с сеансом Sticky на Websphere Server, у нас есть 2 основных сервера и 10 клонов на каждом, при обычном httpSession он использует cookie для повторной обработки запроса этого cookie на тот же сервер, хорошо, но с Spring Сессия это не работает так же.

Spring создает cookie с именем "SESSION", а балансировка нагрузки Websphere не знает, куда перенаправить запрос, потому что сеанс находится не в JVM, а распределен в Redis Cluster.

мне нужно (для порядка логирования porpuse) обрабатывать каждый запрос куки "abc123" к серверу 1 клон 3, например, и если этот экземпляр приложения переходит отслеживать этот куки в другой экземпляр и оставаться на этом экземпляре, пока сервер не выйдет вниз или пользователь вышел...

Ища здесь и документ Spring Session, я нашел кое-что, что могло бы быть полезным, но я не знаю, как это работает.

@Bean
public CookieSerializer cookieSerializer() {
    DefaultCookieSerializer serializer = new DefaultCookieSerializer();
    serializer.setCookieName("JSESSIONID"); 
    serializer.setCookiePath("/"); 
    serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$"); 
    serializer.setJvmRoute("123");
    return serializer;
}

Атрибут Jvm Route добавляет к cookie суффикс, чтобы узнать, что такое JVM, которая обрабатывает этот cookie, но я не знаю, как он работает, и мне не повезло найти примеры или объяснения по этому поводу.

если у кого-то есть ответ или другой способ, которым я могу воспользоваться, это будет здорово.

0 ответов

Другие вопросы по тегам