Quantcast
Channel: Active questions tagged redis+java - Stack Overflow
Viewing all articles
Browse latest Browse all 2204

Unable to connect to redis sentinal in docker from my pc

$
0
0

i am running redis with sentinel in docker and I am not able to connect to my redis using the sentinel. This is my docker-compose file:

version: '3'networks:  app-tier:    driver: bridgeservices:  redis:    image: 'bitnami/redis:latest'    environment:        - REDIS_REPLICATION_MODE=master        - REDIS_PASSWORD=str0ng_passw0rd    networks:      - app-tier    ports:      - '6379'  redis-slave:    image: 'bitnami/redis:latest'    environment:        - REDIS_REPLICATION_MODE=slave        - REDIS_MASTER_HOST=redis        - REDIS_MASTER_PASSWORD=str0ng_passw0rd        - REDIS_PASSWORD=str0ng_passw0rd    ports:        - '6379'    depends_on:        - redis    networks:        - app-tier  redis-sentinel:    image: 'bitnami/redis-sentinel:latest'    environment:        - REDIS_MASTER_HOST=redis        - REDIS_MASTER_PASSWORD=str0ng_passw0rd    depends_on:        - redis        - redis-slave    ports:        - '26379:26379'    networks:        - app-tier

I can see that my sentinetl is up and running and have access to master and slave:

docker exec redis-image_redis-sentinel_1 redis-cli -p 26379 info sentinel# Sentinelsentinel_masters:1sentinel_tilt:0sentinel_running_scripts:0sentinel_scripts_queue_length:0sentinel_simulate_failure_flags:0master0:name=mymaster,status=ok,address=172.23.0.2:6379,slaves=1,sentinels=1

But when I am accessing to redis from my local PC outside the docker network from java I am getting this output:

 redis.clients.jedis.JedisSentinelPool initSentinelsINFO: Trying to find master from available Sentinels... redis.clients.jedis.JedisSentinelPool initSentinelsINFO: Redis master running at 172.23.0.2:6379, starting Sentinel listeners... redis.clients.jedis.JedisSentinelPool initPoolINFO: Created JedisPool to master at 172.23.0.2:6379from masterredis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool    at redis.clients.util.Pool.getResource(Pool.java:53)    at redis.clients.jedis.JedisSentinelPool.getResource(JedisSentinelPool.java:209)    at Main.main(Main.java:22)Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out    at redis.clients.jedis.Connection.connect(Connection.java:164)    at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:80)    at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1677)    at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:87)    at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:868)    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)    at redis.clients.util.Pool.getResource(Pool.java:49)    ... 2 moreCaused by: java.net.SocketTimeoutException: connect timed out    at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)    at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)    at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)    at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)    at java.base/java.net.Socket.connect(Socket.java:608)    at redis.clients.jedis.Connection.connect(Connection.java:158)    ... 9 more

Looks like I am getting internal docker network IP (172.23.0.2:6379) and I am not able to connect to the instance.

I am not able to find solution how to connect to redis with sentinals outside docker.

Thanks


Viewing all articles
Browse latest Browse all 2204

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>