Jedis-ийн SOCKS socket үйлдвэр юу буцаах ёстой вэ
Jedis 5.2.0 нь Redis-д бэлэн холбогдсон socket хүлээх бөгөөд шаардлагатай бол TLS-ийг оруулна; зөвхөн прокси сонгох нь тэр холболтыг өгөхгүй.
JedisSocketFactory.createSocket Redis-ийн урсгалыг зөөхөд бэлэн холбогдсон socket буцаах ёстой. Jedis 5.2.0-д аппликейшн тэр үйлдвэр болон өөрийн Redis клиентийн тохиргоог энд өгнө:
var jedis = new Jedis(socksSocketFactory, redisConfig);socksSocketFactory redis.clients.jedis.JedisSocketFactory-г хэрэгжүүлдэг бөгөөд redisConfig нь аппликейшны JedisClientConfig юм. Конструктор ажиллах үед холбогдоход бэлэн байгаарай: энэ нь баталгаажуулалт болон бусад Redis тохиргоог шууд хийж болно.
Нэг socket-ийг үүсэлтээс хүлээлгэн өгөх хүртэл хяна
Баталгаажуулалтгүй SOCKS5 замд үйлдвэр нь java.net.Socket тодорхой Proxy.Type.SOCKS зуучлагчтай үүсгэж, дараа нь Redis-ийн хост, порт руу холбогдож болно. Очих газрыг шийдээгүй үлдээ хэрэв SOCKS сервер хостын нэрийг өөрөө шийдэх ёстой бол.
Холбогдох оролдлогыг хязгаарлаж, төлөвлөсөн унших хугацааг хэрэглэ. Холболт бүтэлгүй бол тэр socket-ийг хааж, JedisConnectionException-г мэдэгд; үйлдвэрийн интерфейс шалгасан IOException-г зарладаггүй.
Хэрэв Redis TLS шаардвал socket-ийг буцаахаас өмнө TLS-ийг тогтоож шалга. Тусдаа флаг үйлдвэрийн буцаасан дурын socket-ийг өөрчилнө гэж үзэж болохгүй. Пүүлийн хувьд энэ амьдралын мөчлөгийг үйлдвэрийн дуудлага бүрт шинэ socket-оор, түүний дотор орлуулах холболтуудыг давт.
Дэлхийн ProxySelector доторх HTTP сонголт нь энэ ажлын өөр хувилбар биш. Redis өөрийн socket-ээр RESP илгээдэг; үүгээр HTTP болохгүй бөгөөд CONNECT-ийг хэлэлцэхгүй.