Блоклох, 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 тохиргоо биш юм.

Холбоотой нийтлэлүүд