ब्लॉकिंग, TLS-नसलेल्या AMQP कनेक्शनसाठी Spring चे RabbitConnectionFactoryBean RabbitMQ Java क्लायंटला SOCKS-जाणकार सॉकेट फॅक्टरी देऊ शकते.

Commons Net आधीपासून उपलब्ध असल्यास, सुरुवातीपूर्वी विद्यमान factory bean कॉन्फिगर करा:

var socksProxy = new java.net.Proxy(
    java.net.Proxy.Type.SOCKS,
    new java.net.InetSocketAddress("proxy.example", 1080));
rabbitFactoryBean.setSocketFactory(
    new org.apache.commons.net.DefaultSocketFactory(socksProxy));

rabbitFactoryBean हा अनुप्रयोगाचा RabbitConnectionFactoryBean आहे. त्याचा broker होस्ट, AMQP पोर्ट, खाते आणि Spring कनेक्शन-व्यवस्थापन सेटअप जपून ठेवा. broker हेच गंतव्य राहते; SocketFactory ती सॉकेट्स तयार करते जी SOCKS मार्गे त्याला पोहोचतात. सार्वजनिक broker विरुद्ध संवेदनशील-नसलेल्या चाचणीसाठी, जिथे सार्वजनिक मध्यस्थांना परवानगी आहे, SOCKS प्रॉक्सी सूची उमेदवार देते; runtime जे SOCKS आवृत्ती समर्थित करते त्याशी जुळवा आणि प्रत्यक्ष broker होस्ट व पोर्टपर्यंत पोहोच सुनिश्चित करा.

Commons Net ची फॅक्टरी दिलेल्या Proxy वापरून न जोडलेले java.net.Socket तयार करते. त्यानंतर RabbitMQ चा ब्लॉकिंग कनेक्शन कोड ते सॉकेट त्याच्या नेहमीच्या कनेक्शन मार्गाने जोडतो. केवळ HTTP_PROXY निर्यात करून ही AMQP सॉकेट फॅक्टरी मिळत नाही.

RabbitMQ नोंदवते की SocketFactory हुक ब्लॉकिंग I/O वर लागू होतो. NIO किंवा इतर ट्रान्सपोर्टसाठी कॉन्फिगर केलेल्या क्लायंटला त्या ट्रान्सपोर्टचा समर्थित हुक आवश्यक असतो. AMQPS साठी, योग्य TLS सॉकेट फॅक्टरी आणि गंतव्य पडताळणी ठेवा; वरील साध्या फॅक्टरीने ती बदलणे संपूर्ण TLS कॉन्फिगरेशन नाही.

संबंधित लेख