在主从配置中使用 Spring @EnableRedisHttpSession

Using Spring @EnableRedisHttpSession with master-slave configuration

我有一个 Spring 基于云的应用程序,具有多个后端 Spring- 引导服务器。这些服务器都通过@EnableRedisHttpSession 与单个 Redis 服务器共享它们的会话。

我现在需要在生产中支持 Redis 的故障转移,这意味着我将不得不设置一个主从配置(我猜...)。

我将如何配置通过 Redis 的 Http 会话复制以识别这两个服务器?我找不到任何关于此的文档。请注意,我在这里没有使用 Spring Data Redis,只是 Spring Redis 的 Session 支持。

Spring Session Redis 使用 Spring Data Redis 与 Redis 集成,因此您可以使用 Redis Sentinel(参见 http://redis.io/topics/sentinel)。给你全貌:

Redis 允许托管 (Redis Sentinel) 和非托管 Master-Slave 设置。非托管设置不提供故障转移,而 Sentinel 托管设置会在主节点关闭后对其进行故障转移。 Redis Sentinel监控所有master/slave个节点,一旦master不可用,slave将被提升为新的master。

您可以使用以下属性配置 Spring Data Redis 以供 Sentinel 使用:

  • spring.redis.sentinel.master:主节点名称。
  • spring.redis.sentinel.nodes:host:port 对的逗号分隔列表。

或者您提供自己的 RedisConnectionFactory bean。有关详细信息,请参阅 Spring Data Redis 文档。

HTH,马克