Za blokirajočo non-TLS povezavo AMQP lahko RabbitConnectionFactoryBean v Springu posreduje tovarno vtičnic, ki pozna SOCKS, odjemalcu RabbitMQ Java.

Če je Commons Net že na voljo, konfigurirajte obstoječi factory bean pred inicializacijo:

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 je RabbitConnectionFactoryBean aplikacije. Ohranite njegovega gostitelja brokerja, vrata AMQP, račun in nastavitev upravljanja povezav Spring. Broker ostaja cilj; SocketFactory ustvari vtičnice, ki ga dosežejo prek SOCKS. Za neobčutljiv test proti javnemu brokerju, kjer so javni posredniki dovoljeni, seznam proxyjev SOCKS ponuja kandidate; uskladite različico SOCKS, ki jo podpira izvajalno okolje, in potrdite dostop do dejanskega gostitelja in vrat brokerja.

Tovarna Commons Net ustvari nepovezano java.net.Socket z danim Proxy. Nato blokirajoča koda povezave RabbitMQ poveže to vtičnico po svoji običajni poti povezave. Samo izvoz HTTP_PROXY ne zagotovi te tovarne vtičnic AMQP.

RabbitMQ dokumentira, da kavelj SocketFactory velja za blokirajoči I/O. Odjemalec, konfiguriran za NIO ali drug transport, potrebuje kavelj, ki ga podpira ta transport. Za AMQPS ohranite ustrezno tovarno vtičnic TLS in preverjanje cilja; zamenjava z zgornjo preprosto tovarno ni popolna konfiguracija TLS.

Sorodni članki