Jetty Spring 使用会话复制启动

Jetty Spring Boot with session replication

我正在使用 spring boot 2.5.3 和 Jetty 9.4.43.v20210629。我想跨多个节点共享会话。在 Jetty 9.4 中,会话管理有很多变化。我想要一些具有 java 配置的会话复制(使用 JDBC / 文件系统)的参考资料。

Session 可以使用 spring session 和以下存储选项来完成复制,

黑兹尔卡斯特 数据库 Redis MongoDB

spring.session.store-type 属性 应该用来决定存储类型。当多个节点/容器指向同一存储时,它将共享 session 并且无需维护粘性 session.

需要在 pom.xml 中添加适当的依赖项并在需要时添加注释(例如:@EnableJDBCHttpSession)

示例应用程序 yaml 更改。

JDBC

spring:
    application.name: console-bs
    main.allow-bean-definition-overriding: true
    profile: default
    session.store-type: jdbc
    session.jdbc.initialize-schema: always
    jpa.database: mysql
    jpa.database-platform: org.hibernate.dialect.MySQL5Dialect
    datasource.url: jdbc:mysql://mysqldb:3306/user
    datasource.username: user
    datasource.password: user1234#
    datasource.driver-class-name: com.mysql.cj.jdbc.Driver

Redis

spring:
    application.name: console-bs
    main.allow-bean-definition-overriding: true
    profile: default
    session.store-type: redis
    redis.host: redis
    redis.port: 6379