1

我想将 AWS Elasticache 用于 Liberty 的会话缓存,但看起来 Liberty 的 sessionCache-1.0 功能只能与 JCache 兼容的存储一起使用。(如 Hazelcast、Infinispan 等)。

所以请让我确认一下。

  • 无法将 Liberty 的功能 (sessionCache-1.0) 与 AWS Elasticache 一起使用,这是否正确?
  • 如果是这样,我是否需要为我的应用程序中的会话缓存编写自定义代码?

如果您对如何在 Liberty 中实现会话缓存有任何建议,我将不胜感激。

4

1 回答 1

1

最终我可以使用 redisson 配置 sessionCache-1.0 功能。
以下是 ElastiCache Redis(已禁用集群模式)的配置标志。

服务器.xml

・・・
    <!-- JCache Library -->
    <library id="jCacheVendorLib">
        <fileset dir="${shared.resource.dir}/redisson" includes="*.jar"/>
    </library>

    <!-- Session Replication -->
    <httpSessionCache libraryRef="jCacheVendorLib" uri="file:${shared.resource.dir}/redisson/redisson-jcache.yaml"/>
・・・

redisson-jcache.yaml

---
replicatedServersConfig:
  idleConnectionTimeout: 10000
  connectTimeout: 10000
  timeout: 3000
  retryAttempts: 3
  retryInterval: 1500
  failedSlaveReconnectionInterval: 3000
  failedSlaveCheckInterval: 60000
  password: null
  subscriptionsPerConnection: 5
  clientName: xxxxxxx
  loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
  subscriptionConnectionMinimumIdleSize: 1
  subscriptionConnectionPoolSize: 50
  slaveConnectionMinimumIdleSize: 24
  slaveConnectionPoolSize: 64
  masterConnectionMinimumIdleSize: 24
  masterConnectionPoolSize: 64
  readMode: "MASTER_SLAVE"
  subscriptionMode: "MASTER"
  nodeAddresses:
  - "redis://xxxxxxxxxxxxxx01.cache.amazonaws.com:6379"
  - "redis://xxxxxxxxxxxxxx02.cache.amazonaws.com:6379"
  scanInterval: 1000
threads: 16
nettyThreads: 32
codec: !<org.redisson.codec.MarshallingCodec> {}
transportMode: "NIO"
于 2021-10-12T07:53:57.727 回答