【问题标题】:Spring XD distributed mode Redis SentinelSpring XD 分布式模式 Redis Sentinel
【发布时间】:2015-12-31 20:02:48
【问题描述】:

我正在尝试在 2 个 Ubuntu 虚拟机上以分布式模式运行 spring xd。我的目标是在其中一个运行 spring xd 的 VM 上部署一个模块,并使其对另一个 VM(主机名:container1)上的容器可见。在主 VM(主机名:xd-admin)上,我在 servers.yml 中使用此配置运行 redis-sentinel

spring:
  redis:
   port: 6379
   host: 127.0.0.1
   sentinel:
     master: 127.0.0.1:26379
     nodes: 127.0.0.1:26379,127.0.0.1:26380,127.0.0.1:26381

在 container1 中,servers.yml 中有以下内容

spring:
  redis:
   port: 6379
   host: 127.0.0.1
   sentinel:
     master:  xd-admin:26379
     nodes: 127.0.0.1:26379,127.0.0.1:26380,127.0.0.1:26381

zk:
  namespace: xd
  client:
     connect: xd-admin:2181
     sessionTimeout: 60000
     connectionTimeout: 30000
     initialRetryWait: 1000
     retryMaxAttempts: 3

当我在 xd-admin 主机上运行 xd-container 时,我得到了

Caused by: redis.clients.jedis.exceptions.JedisException: Can connect to sentinel, but 127.0.0.1:26379 seems to be not monitored...
        at redis.clients.jedis.JedisSentinelPool.initSentinels(JedisSentinelPool.java:150) ~[jedis-2.6.2.jar:na]
        at redis.clients.jedis.JedisSentinelPool.<init>(JedisSentinelPool.java:69) ~[jedis-2.6.2.jar:na]
        at redis.clients.jedis.JedisSentinelPool.<init>(JedisSentinelPool.java:47) ~[jedis-2.6.2.jar:na]
        at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createRedisSentinelPool(JedisConnectionFactory.java:215) ~[spring-data-redis-1.5.0.RELEASE.jar:1.5.0.RELEASE]
        at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createPool(JedisConnectionFactory.java:202) ~[spring-data-redis-1.5.0.RELEASE.jar:1.5.0.RELEASE]
        at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.afterPropertiesSet(JedisConnectionFactory.java:195) ~[spring-data-redis-1.5.0.RELEASE.jar:1.5.0.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633) ~[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570) ~[spring-beans-4.1.7.RELEASE.jar:4.1.7.RELEASE]
        ... 30 common frames omitted

当我在 container1 主机上运行 xd-container 时,我得到了

Caused by: redis.clients.jedis.exceptions.JedisConnectionException: All sentinels down, cannot determine where is 192.168.33.10:26379 master is running...
        at redis.clients.jedis.JedisSentinelPool.initSentinels(JedisSentinelPool.java:153)
        at redis.clients.jedis.JedisSentinelPool.<init>(JedisSentinelPool.java:69)
        at redis.clients.jedis.JedisSentinelPool.<init>(JedisSentinelPool.java:47)
        at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createRedisSentinelPool(JedisConnectionFactory.java:215)
        at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createPool(JedisConnectionFactory.java:202)
        at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.afterPropertiesSet(JedisConnectionFactory.java:195)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)
        ... 31 more

我在 xd-admin 上运行了 zookeeper 和 rabbit-mq。我在 container1 上运行了 redis。我知道 xd-admin 可以从 container1 访问,因为我在 xd-admin 上安装了 apache2,并且当我从 container1 运行 curl xd-admin 时收到响应。如何正确配置 redis 和/或我的 servers.yml 以便我的容器进行通信?

【问题讨论】:

    标签: redis spring-xd


    【解决方案1】:

    在我的 servers.yml 文件中,我评论了 redis.sentinel 及其子项,异常消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      相关资源
      最近更新 更多