Spring AMQP માં TLS-રહિત RabbitMQ કનેક્શન બ્લોક કરવા માટે SOCKS
બ્લોકિંગ TLS-રહિત AMQP કનેક્શન પથ માટે RabbitConnectionFactoryBean દ્વારા પ્રોક્સી-જાણકાર SocketFactory જોડો.
બ્લોકિંગ, TLS-રહિત AMQP કનેક્શન માટે Spring નું RabbitConnectionFactoryBean RabbitMQ Java ક્લાયન્ટને SOCKS-જાણકાર સોકેટ ફેક્ટરી આપી શકે છે.
જો Commons Net પહેલેથી ઉપલબ્ધ હોય, તો ઇનિશિયલાઇઝેશન પહેલાં હાલનું ફેક્ટરી બીન ગોઠવો:
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 ગોઠવણી નથી.