Blokuojančiam ne TLS AMQP ryšiui Spring RabbitConnectionFactoryBean gali perduoti SOCKS suprantančią lizdų gamyklą RabbitMQ Java klientui.

Jei Commons Net jau prieinama, sukonfigūruokite esamą factory bean prieš inicijavimą:

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 yra programos RabbitConnectionFactoryBean. Išsaugokite jo brokerio hostą, AMQP portą, paskyrą ir Spring ryšių valdymo nustatymus. Brokeris lieka paskirties vieta; SocketFactory sukuria lizdus, kurie pasiekia jį per SOCKS. Neslopiam bandymui su viešu brokeriu, kai leidžiami vieši tarpininkai, SOCKS tarpinių serverių sąrašas siūlo kandidatus; suderinkite vykdymo aplinkos palaikomą SOCKS versiją ir patvirtinkite prieigą prie tikrojo brokerio hosto ir porto.

Commons Net gamykla sukuria neprisijungusį java.net.Socket naudodama pateiktą Proxy. Tada RabbitMQ blokuojantis ryšio kodas prijungia tą lizdą įprastu ryšio keliu. Vien HTTP_PROXY eksportavimas nesuteikia šios AMQP lizdų gamyklos.

RabbitMQ dokumentuoja, kad SocketFactory kabliukas taikomas blokuojančiam I/O. Klientui, sukonfigūruotam NIO ar kitam transportui, reikia to transporto palaikomo kabliuko. AMQPS atveju išsaugokite tinkamą TLS lizdų gamyklą ir paskirties patikrą; pakeitimas aukščiau nurodyta paprasta gamykla nėra išsami TLS konfigūracija.

Susiję straipsniai