Aplikacja Java nie łączy się do Redisa

0

Cześć,
Mam trudność z połączeniem aplikacji do zewnętrznej usługi - Redisa.

Skonteneryzowana (Docker) aplikacja rzuca:

Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Failed to create socket.
	at redis.clients.jedis.DefaultJedisSocketFactory.createSocket(DefaultJedisSocketFactory.java:110)
	at redis.clients.jedis.Connection.connect(Connection.java:226)
	at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:135)
	at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:309)
	at redis.clients.jedis.BinaryJedis.initializeFromClientConfig(BinaryJedis.java:87)
	at redis.clients.jedis.BinaryJedis.<init>(BinaryJedis.java:292)
	at redis.clients.jedis.Jedis.<init>(Jedis.java:167)
	at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:177)
	at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:918)
	at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:431)
	at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:356)
	at redis.clients.jedis.util.Pool.getResource(Pool.java:75)
	... 66 more
Caused by: java.net.ConnectException: Connection refused (Connection refused)
	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:403)
	at java.base/java.net.Socket.connect(Socket.java:609)
	at redis.clients.jedis.DefaultJedisSocketFactory.createSocket(DefaultJedisSocketFactory.java:80)

Dziwna dla mnie sprawa, bo jak się loguję do kontenera, w którym działa proces aplikacji Java to nmap daje:

/opt/transformer # nmap 192.168.121.228 -p 6379
Starting Nmap 7.80 ( https://nmap.org ) at 2021-08-20 17:38 UTC
Nmap scan report for 192.168.121.228
Host is up (0.00023s latency).

PORT     STATE SERVICE
6379/tcp open  redis

Nmap done: 1 IP address (1 host up) scanned in 0.21 seconds

Co ciekawe redis-cli bez problemu łączy się do tego Redisa z shella tego samego kontenera:

/opt/transformer # redis-cli -h 192.168.121.228
192.168.121.228:6379> ping
PONG
192.168.121.228:6379>

Nie kumam, proszę o pomoc.

2

Prawdopodobnie masz zajęty port. Może w Docker jest nie otwarty na zewnątrz, lub juz działa taki proces używający tego portu.

0

Sądząc po opisie connection-refused to raczej obstawiałbym, że aplikacja próbuje się łączyć albo do innego hosta lub na inny port, a nie na domyślny redisa (6373). Sprawdź dokładnie, z jakim hostem oraz na jakim porcie ta aplikacja próbuje nawiązać połączenie z redisem (możliwe, że w jej konfiguracji jest połączenie z redisem inaczej ustawione).

1 użytkowników online, w tym zalogowanych: 0, gości: 1