За блокирачка, non-TLS AMQP врска, RabbitConnectionFactoryBean на Spring може да пренесе фабрика за сокети свесна за SOCKS на 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. За нечувствителен тест против јавен broker каде што се дозволени јавни посредници, списокот со SOCKS прокси нуди кандидати; усогласете ја верзијата на SOCKS што ја поддржува околината и потврдете пристап до вистинскиот broker хост и порта.

Фабриката на Commons Net создава неповрзан java.net.Socket користејќи го дадениот Proxy. Потоа блокирачкиот код за врска на RabbitMQ го поврзува тој сокет по својата вообичаена патека за врска. Самото извезување на HTTP_PROXY не ја обезбедува оваа AMQP фабрика за сокети.

RabbitMQ документира дека куката SocketFactory се однесува на блокирачки I/O. Клиент конфигуриран за NIO или друг транспорт ја бара поддржаната кука на тој транспорт. За AMQPS, задржете соодветна TLS фабрика за сокети и проверка на дестинацијата; замената со горната обична фабрика не е целосна TLS конфигурација.

Поврзани статии