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 را برقرار و بررسی کنید. نمی‌توان فرض کرد که یک پرچم جداگانه سوکت دلخواهی را که کارخانه برمی‌گرداند تغییر می‌دهد. برای یک استخر، این چرخه عمر را در هر فراخوانی کارخانه با سوکت تازه، از جمله اتصال‌های جانشین، تکرار کنید.

انتخاب HTTP در یک ProxySelector سراسری پیاده‌سازی جایگزین این کار نیست. Redis پروتکل RESP را روی سوکت خود می‌فرستد؛ با این کار HTTP نمی‌شود و CONNECT را مذاکره نمی‌کند.

مقالات مرتبط