Блоктайтын, TLS емес AMQP қосылымы үшін Spring-нің RabbitConnectionFactoryBean-ы SOCKS-ті танитын socket фабрикасын RabbitMQ Java клиентіне бере алады.

Егер 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 арқылы жететін socket-терді жасайды. Ашық делдалдарға рұқсат етілген ашық brokerге қарсы сезімтал емес тест үшін SOCKS проксилерінің тізімі үміткерлерді ұсынады; runtime қолдайтын SOCKS нұсқасын сәйкестендіріп, нақты broker хост пен портқа қатынауды растаңыз.

Commons Net фабрикасы берілген Proxy арқылы қосылмаған java.net.Socket жасайды. Содан кейін RabbitMQ-ның блоктайтын қосылым коды сол socket-ті әдеттегі қосылым жолы арқылы қосады. Тек HTTP_PROXY экспорттау бұл AMQP socket фабрикасын бермейді.

RabbitMQ SocketFactory ілгегі блоктайтын I/O-ға қолданылатынын құжаттайды. NIO немесе басқа транспортқа конфигурацияланған клиентке сол транспорт қолдайтын ілгек қажет. AMQPS үшін тиісті TLS socket фабрикасын және межелі орынды тексеруді сақтаңыз; оны жоғарыдағы қарапайым фабрикамен ауыстыру толық TLS конфигурациясы емес.

Қатысты мақалалар