当前位置: 首页 > 知识库问答 >
问题:

使用Redis Sentinel更正@enableRedisHttpSession配置

曹理
2023-03-14

我正在尝试用主从配置和Redis Sentinel配置应用程序。我的设置是1个主人,2个奴隶,3个哨兵。

我一直对环境有问题。起初,我得到了一个错误,说我的奴隶它是只读的。所以我不得不将所有的奴隶都设置为读写。然后,我还是得到了这个错误。原来,当一个从机提升为主机时,旧的主机也会变成从机,默认的是只读设置。所以我不得不将主程序也设置为READWRITE。以下是我引导redis服务器的命令(我知道使用同一台机器没有意义,这是为了在这个阶段进行测试):

引导主机:

redis-server --slave-read-only no --port 6379
redis-server --slaveof 127.0.0.1 6379 --slave-read-only no --port 6380
redis-server --slaveof 127.0.0.1 6379 --slave-read-only no --port 6381
#Redis config
spring.redis.sentinel.master: mymaster
spring.redis.sentinel.nodes: localhost:5000,localhost:5001,localhost:5002
redis-sentinel sentinel-0.conf
redis-sentinel sentinel-1.conf
redis-sentinel sentinel-2.conf
port 5000
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel config-epoch mymaster 6

对于另外两个哨兵,它是5001和5002端口

现在,只要一切正常,没有问题,一切都很好。

然而,一旦我杀死主redis服务器,事情停止工作。首先,我得到以下错误:

There was an unexpected error (type=Internal Server Error, status=500).
Cannot get Jedis connection; nested exception is     redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
port 5000
sentinel monitor mymaster 127.0.0.1 6381 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel config-epoch mymaster 6
# Generated by CONFIG REWRITE
dir "/user/odedia/.jenkins/workspace/boot_redis_sentinel_0"
sentinel leader-epoch mymaster 6
sentinel known-slave mymaster 127.0.0.1 6380
sentinel known-slave mymaster 127.0.0.1 6379
sentinel known-sentinel mymaster 127.0.0.1 5002 28d5fdf14fcc023045f00b00fcdbd4d4f4554611
sentinel known-sentinel mymaster 127.0.0.1 5001 a492f1f0e270fa67c22e057fbd12e981811a79fe
sentinel current-epoch 6

显然我现在不能使用这个解决方案。任何帮助都将不胜感激。

以下是完整的StackTrace:

2016-02-29 12:11:12.640 ERROR 32389 --- [enerContainer-1] o.s.d.r.l.RedisMessageListenerContainer  : Connection failure occurred. Restarting subscription task after 5000 ms
2016-02-29 12:11:16.134 ERROR 32389 --- [nio-9090-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception

org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
    at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:162) ~[spring-data-redis-1.6.1.RELEASE.jar!/:1.6.1.RELEASE]
    at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:251) ~[spring-data-redis-1.6.1.RELEASE.jar!/:1.6.1.RELEASE]
    at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:58) ~[spring-data-redis-1.6.1.RELEASE.jar!/:1.6.1.RELEASE]
    at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:128) ~[spring-data-redis-1.6.1.RELEASE.jar!/:1.6.1.RELEASE]
    at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:91) ~[spring-data-redis-1.6.1.RELEASE.jar!/:1.6.1.RELEASE]
    at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:78) ~[spring-data-redis-1.6.1.RELEASE.jar!/:1.6.1.RELEASE]
    at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:178) ~[spring-data-redis-1.6.1.RELEASE.jar!/:1.6.1.RELEASE]
    at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:153) ~[spring-data-redis-1.6.1.RELEASE.jar!/:1.6.1.RELEASE]
    at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:86) ~[spring-data-redis-1.6.1.RELEASE.jar!/:1.6.1.RELEASE]
    at org.springframework.data.redis.core.DefaultHashOperations.entries(DefaultHashOperations.java:220) ~[spring-data-redis-1.6.1.RELEASE.jar!/:1.6.1.RELEASE]
    at org.springframework.data.redis.core.DefaultBoundHashOperations.entries(DefaultBoundHashOperations.java:101) ~[spring-data-redis-1.6.1.RELEASE.jar!/:1.6.1.RELEASE]
    at org.springframework.session.data.redis.RedisOperationsSessionRepository.getSession(RedisOperationsSessionRepository.java:233) ~[spring-session-1.0.2.RELEASE.jar!/:na]
    at org.springframework.session.data.redis.RedisOperationsSessionRepository.getSession(RedisOperationsSessionRepository.java:220) ~[spring-session-1.0.2.RELEASE.jar!/:na]
    at org.springframework.session.data.redis.RedisOperationsSessionRepository.getSession(RedisOperationsSessionRepository.java:141) ~[spring-session-1.0.2.RELEASE.jar!/:na]
    at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.getSession(SessionRepositoryFilter.java:276) ~[spring-session-1.0.2.RELEASE.jar!/:na]
    at org.springframework.web.context.request.ServletRequestAttributes.updateAccessedSessionAttributes(ServletRequestAttributes.java:255) ~[spring-web-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
    at org.springframework.web.context.request.AbstractRequestAttributes.requestCompleted(AbstractRequestAttributes.java:48) ~[spring-web-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:106) ~[spring-web-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:87) ~[spring-web-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) ~[spring-web-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:125) ~[spring-session-1.0.2.RELEASE.jar!/:na]
    at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:65) ~[spring-session-1.0.2.RELEASE.jar!/:na]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121) ~[spring-web-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:103) ~[spring-boot-actuator-1.3.0.RELEASE.jar!/:1.3.0.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217) ~[tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) [tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) [tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) [tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) [tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) [tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) [tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673) [tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) [tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) [tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_65]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_65]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.0.28.jar!/:8.0.28]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65]
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
    at redis.clients.util.Pool.getResource(Pool.java:50) ~[jedis-2.7.3.jar!/:na]
    at redis.clients.jedis.JedisPool.getResource(JedisPool.java:99) ~[jedis-2.7.3.jar!/:na]
    at redis.clients.jedis.JedisPool.getResource(JedisPool.java:12) ~[jedis-2.7.3.jar!/:na]
    at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:155) ~[spring-data-redis-1.6.1.RELEASE.jar!/:1.6.1.RELEASE]
    ... 55 common frames omitted
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused
    at redis.clients.jedis.Connection.connect(Connection.java:164) ~[jedis-2.7.3.jar!/:na]
    at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:82) ~[jedis-2.7.3.jar!/:na]
    at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1641) ~[jedis-2.7.3.jar!/:na]
    at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:85) ~[jedis-2.7.3.jar!/:na]
    at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:868) ~[commons-pool2-2.4.2.jar!/:2.4.2]
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435) ~[commons-pool2-2.4.2.jar!/:2.4.2]
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363) ~[commons-pool2-2.4.2.jar!/:2.4.2]
    at redis.clients.util.Pool.getResource(Pool.java:48) ~[jedis-2.7.3.jar!/:na]
    ... 58 common frames omitted
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_65]
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_65]
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_65]
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_65]
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_65]
    at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_65]
    at redis.clients.jedis.Connection.connect(Connection.java:158) ~[jedis-2.7.3.jar!/:na]
    ... 65 common frames omitted

另外,这里是一个哨兵日志的输出:

           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.0.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 5001
 |    `-._   `._    /     _.-'    |     PID: 30337
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

30337:X 29 Feb 12:43:42.898 # Sentinel runid is b2146318c65fb869a5933d6812b41de89cd0131a
30337:X 29 Feb 12:43:42.898 # +monitor master mymaster 127.0.0.1 6379 quorum 2
30337:X 29 Feb 12:43:45.015 * -dup-sentinel master mymaster 127.0.0.1 6379 #duplicate of 127.0.0.1:5000 or 719b5af91a18190a4d07059243bb664b95047f0f
30337:X 29 Feb 12:43:45.015 * +sentinel sentinel 127.0.0.1:5000 127.0.0.1 5000 @ mymaster 127.0.0.1 6379
30337:X 29 Feb 12:43:45.095 * -dup-sentinel master mymaster 127.0.0.1 6379 #duplicate of 127.0.0.1:5002 or b375d206c4833c1196911073f63a13f9ee19b5b1
30337:X 29 Feb 12:43:45.095 * +sentinel sentinel 127.0.0.1:5002 127.0.0.1 5002 @ mymaster 127.0.0.1 6379
30337:X 29 Feb 12:44:07.928 # +sdown master mymaster 127.0.0.1 6379
30337:X 29 Feb 12:44:08.502 # +new-epoch 66
30337:X 29 Feb 12:44:08.630 # +vote-for-leader 719b5af91a18190a4d07059243bb664b95047f0f 66
30337:X 29 Feb 12:44:09.094 # +odown master mymaster 127.0.0.1 6379 #quorum 3/2
30337:X 29 Feb 12:44:09.094 # Next failover delay: I will not start a failover before Mon Feb 29 12:46:08 2016
30337:X 29 Feb 12:46:08.143 # +new-epoch 67
30337:X 29 Feb 12:46:08.144 # +vote-for-leader b375d206c4833c1196911073f63a13f9ee19b5b1 67
30337:X 29 Feb 12:46:08.150 # Next failover delay: I will not start a failover before Mon Feb 29 12:48:08 2016
30337:X 29 Feb 12:48:08.309 # +new-epoch 68
30337:X 29 Feb 12:48:08.310 # +try-failover master mymaster 127.0.0.1 6379
30337:X 29 Feb 12:48:08.313 # +vote-for-leader b2146318c65fb869a5933d6812b41de89cd0131a 68
30337:X 29 Feb 12:48:08.318 # 127.0.0.1:5002 voted for b2146318c65fb869a5933d6812b41de89cd0131a 68
30337:X 29 Feb 12:48:08.318 # 127.0.0.1:5000 voted for b2146318c65fb869a5933d6812b41de89cd0131a 68
30337:X 29 Feb 12:48:08.403 # +elected-leader master mymaster 127.0.0.1 6379
30337:X 29 Feb 12:48:08.404 # +failover-state-select-slave master mymaster 127.0.0.1 6379
30337:X 29 Feb 12:48:08.466 # -failover-abort-no-good-slave master mymaster 127.0.0.1 6379
30337:X 29 Feb 12:48:08.525 # Next failover delay: I will not start a failover before Mon Feb 29 12:50:08 2016
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.0.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 30316
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

30316:S 29 Feb 12:43:42.883 # Server started, Redis version 3.0.6
30316:S 29 Feb 12:43:42.883 * DB loaded from disk: 0.000 seconds
30316:S 29 Feb 12:43:42.883 * The server is now ready to accept connections on port 6379
30316:S 29 Feb 12:43:42.883 * Connecting to MASTER 127.0.0.1:6380
30316:S 29 Feb 12:43:42.883 * MASTER <-> SLAVE sync started
30316:S 29 Feb 12:43:42.883 # Error condition on socket for SYNC: Connection refused
30316:S 29 Feb 12:43:43.896 * Connecting to MASTER 127.0.0.1:6380
30316:S 29 Feb 12:43:43.896 * MASTER <-> SLAVE sync started
30316:S 29 Feb 12:43:43.896 * Non blocking connect for SYNC fired the event.
30316:S 29 Feb 12:43:43.896 * Master replied to PING, replication can continue...
30316:S 29 Feb 12:43:43.896 * Partial resynchronization not possible (no cached master)
30316:S 29 Feb 12:43:43.897 * Full resync from master: 04f525038fe60c44a75fac73285485fa534bf24c:1
30316:S 29 Feb 12:43:43.996 * MASTER <-> SLAVE sync: receiving 18 bytes from master
30316:S 29 Feb 12:43:43.996 * MASTER <-> SLAVE sync: Flushing old data
30316:S 29 Feb 12:43:43.996 * MASTER <-> SLAVE sync: Loading DB in memory
30316:S 29 Feb 12:43:43.996 * MASTER <-> SLAVE sync: Finished with success
30316:signal-handler (1456742796) Received SIGTERM scheduling shutdown...
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.0.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6380
 |    `-._   `._    /     _.-'    |     PID: 30319
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

30319:M 29 Feb 12:43:42.884 # Server started, Redis version 3.0.6
30319:M 29 Feb 12:43:42.884 * DB loaded from disk: 0.000 seconds
30319:M 29 Feb 12:43:42.884 * The server is now ready to accept connections on port 6380
30319:M 29 Feb 12:43:42.891 * Slave 127.0.0.1:6381 asks for synchronization
30319:M 29 Feb 12:43:42.891 * Full resync requested by slave 127.0.0.1:6381
30319:M 29 Feb 12:43:42.891 * Starting BGSAVE for SYNC with target: disk
30319:M 29 Feb 12:43:42.891 * Background saving started by pid 30333
30333:C 29 Feb 12:43:42.901 * DB saved on disk
30333:C 29 Feb 12:43:42.901 * RDB: 0 MB of memory used by copy-on-write
30319:M 29 Feb 12:43:42.984 * Background saving terminated with success
30319:M 29 Feb 12:43:42.984 * Synchronization with slave 127.0.0.1:6381 succeeded
30319:M 29 Feb 12:43:43.896 * Slave 127.0.0.1:6379 asks for synchronization
30319:M 29 Feb 12:43:43.896 * Full resync requested by slave 127.0.0.1:6379
30319:M 29 Feb 12:43:43.896 * Starting BGSAVE for SYNC with target: disk
30319:M 29 Feb 12:43:43.897 * Background saving started by pid 30368
30368:C 29 Feb 12:43:43.903 * DB saved on disk
30368:C 29 Feb 12:43:43.903 * RDB: 0 MB of memory used by copy-on-write
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.0.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6381
 |    `-._   `._    /     _.-'    |     PID: 30325
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

30325:S 29 Feb 12:43:42.889 # Server started, Redis version 3.0.6
30325:S 29 Feb 12:43:42.889 * DB loaded from disk: 0.000 seconds
30325:S 29 Feb 12:43:42.889 * The server is now ready to accept connections on port 6381
30325:S 29 Feb 12:43:42.889 * Connecting to MASTER 127.0.0.1:6380
30325:S 29 Feb 12:43:42.889 * MASTER <-> SLAVE sync started
30325:S 29 Feb 12:43:42.889 * Non blocking connect for SYNC fired the event.
30325:S 29 Feb 12:43:42.890 * Master replied to PING, replication can continue...
30325:S 29 Feb 12:43:42.891 * Partial resynchronization not possible (no cached master)
30325:S 29 Feb 12:43:42.892 * Full resync from master: 04f525038fe60c44a75fac73285485fa534bf24c:1
30325:S 29 Feb 12:43:42.984 * MASTER <-> SLAVE sync: receiving 18 bytes from master
30325:S 29 Feb 12:43:42.984 * MASTER <-> SLAVE sync: Flushing old data
30325:S 29 Feb 12:43:42.984 * MASTER <-> SLAVE sync: Loading DB in memory
30325:S 29 Feb 12:43:42.984 * MASTER <-> SLAVE sync: Finished with success

谢了。

共有1个答案

孟振
2023-03-14

我终于找到了解决办法。是我作为一个开发人员思维不够前瞻...

在很久以前的某个时候,我在引导一个服务器(网关,对于会话管理来说,这是一个重要的服务器)时遇到异常,告诉我它找不到JedIconnectionFactory bean。所以我在主类中写了一个硬编码的...指向端口6379的localhost:)。难怪sentinel配置被忽略了。

去掉那个@bean后,一切都工作得很好。

我发现它的方式可以为其他人提供一个很好的参考点。起初,我注意到Spring忽略了我在application.properties中的条目。

因此,我用自己的sentinelConfig@bean和jedisConnectionFactory@bean编写了自己的@configuration类。Spring选择了我的sentinelConfig,但完全忽略了我的jedisConnectionFactory(简单的调试发现了这个问题)。

因此,我将bean重命名为customJedisConnectionFactory,然后我得到了一条关于有两个bean实现ReDisconnectionFactory的错误消息。从那里,很快就在源代码中找到了另一个@bean。

 类似资料:
  • 问题内容: 我有一个基于Spring Cloud的应用程序,带有多个后端Spring- Boot服务器。这些服务器都通过@EnableRedisHttpSession与Redis服务器共享会话。 我正在尝试使用主从配置和Redis Sentinel配置应用程序。我的设置是1个主机,2个从机和3个哨兵。 我不断遇到环境问题。刚开始,我遇到一个错误,说我的奴隶是READONLY。因此,我必须将所有从属

  • 我在使用Spring Boot配置文件和时遇到了这个奇怪的问题: 如果我使用此设置,则一切都是正确的: 我尝试了几种变通方法: > 为了安全,我使用以下属性禁用了它: 但是,我无法禁用Redis会话。我已经尝试了以下操作: 这也是:但没有成功。 编辑:这是初始化Redis时显示的stacktrace(此配置文件不需要它):

  • 我正在用Java Swing制作一个游戏,其中有一个大POJO用来存储游戏的运行时数据,比如精灵的位置、当前显示的效果等等。我希望能够将其作为JSON保存到一个文件中,然后在以后重新构建。我发现Gson应该就是这么做的,但到目前为止我还没能让它工作。我总是遇到这样一个问题:它无法使嵌套在存储类中的某些变量可访问。 以下是我目前使用Gson的方式: 以下是我当前尝试使用时收到的错误消息: 是我在开头

  • 我正在用Java Swing制作一个游戏,其中有一个大POJO用来存储游戏的运行时数据,比如精灵的位置、当前显示的效果等等。我希望能够将其作为Json保存到一个文件中,然后在以后重新构建。我发现Gson应该就是这么做的,但到目前为止我还没能让它工作。我总是遇到这样一个问题:它无法使嵌套在存储类中的某些变量可访问 以下是我目前使用Gson的方式: 这是当我尝试使用时,我当前收到的错误消息: 是我一开

  • 我正在构建一个应用程序,使用Spring Cloud配置服务器作为保存属性文件的集中位置。我有多个客户端应用程序从配置服务器获取配置数据。 但我使用Spring cloud bus和Kafka作为消息代理,以将所有更改广播到客户端应用程序,而不是手动刷新每个客户端应用程序,以便在提交后获取属性文件中的最新更改。下面是pom文件和属性文件。 配置服务器:pom application.propert

  • 我正在尝试创建一个CXF肥皂Web服务客户端,以便使用经过Kerberos身份验证的SharePoint实例进行肥皂调用。 我导入以下内容: 组织。阿帕奇。cxf:cxf rt前端jaxws:3.2.6 组织。阿帕奇。cxf:cxf rt传输http:3.2.6 组织。阿帕奇。cxf:cxf rt传输http hc:3.2.6 组织。阿帕奇。cxf:cxf rt ws-security:3.2.6