JedisSocketFactory.createSocket Redis трафигин ташууга даяр туташкан сокетти кайтарышы керек. Jedis 5.2.0 ичинде колдонмо ошол фабриканы жана өзүнүн Redis кардарынын конфигурациясын ушул жерде берет:

var jedis = new Jedis(socksSocketFactory, redisConfig);

socksSocketFactory redis.clients.jedis.JedisSocketFactory интерфейсин ишке ашырат, ал эми redisConfig колдонмонун JedisClientConfig объектиси. Конструктор иштегенде туташууга даяр болуңуз: ал аутентификацияны жана башка Redis жөндөөлөрүн дароо аткара алат.

Бир сокетти түзүлүштөн өткөрүп берүүгө чейин көзөмөлдөңүз

Аутентификациясыз SOCKS5 маршруту үчүн фабрика java.net.Socket ачык Proxy.Type.SOCKS ортомчусу менен түзүп, анан Redis хост жана портуна туташа алат. Барар жерди чечилбеген бойдон калтырыңыз эгер SOCKS сервери хост атын өзү чечүүгө тийиш болсо.

Туташуу аракетин чектеп, көздөлгөн окуу убактысын колдонуңуз. Байланыш ишке ашпаса, ошол сокетти жабыңыз жана JedisConnectionException жөнүндө кабарлаңыз; фабриканын интерфейси текшерилген IOException жарыялабайт.

Эгер Redis TLS талап кылса, сокетти кайтармайын туруп TLS орнотуп, текшериңиз. Өзүнчө флаг фабрика кайтарган каалаган сокетти өзгөртөт деп болжолдоого болбойт. Пул үчүн бул өмүр циклин ар бир фабрика чакырыгында жаңы сокет менен, анын ичинде алмаштыруучу байланыштар менен кайталаңыз.

Глобалдык ProxySelector ичиндеги HTTP тандоо бул иштин альтернативалуу ишке ашырылышы эмес. Redis өз сокети аркылуу RESP жөнөтөт; ошонун негизинде ал HTTP болуп калбайт жана CONNECT боюнча сүйлөшүү жүргүзбөйт.

Тектеш макалалар