有没有办法为 RabbitMQ Java 客户端设置代理?
package com.rabbitmq;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.MessageProperties;
public class SendToRabbitMQ {
private final static String QUEUE_NAME = "observation_queue";
public static void sendObservation(String observation) {
try {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("x.x.x.x");
factory.setUsername("test");
factory.setVirtualHost("test_vh");
factory.setPassword("test");
Connection con = factory.newConnection();
Channel channel = con.createChannel();
channel.queueDeclare(QUEUE_NAME, true, false, false, null);
channel.basicPublish( "", QUEUE_NAME,
MessageProperties.PERSISTENT_TEXT_PLAIN,
observation.getBytes());
System.out.println(" Ovservation Sent '" + observation + "'");
channel.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
我想为此连接设置代理。
您必须设置 SOCKS 代理。
参见:http://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html
您可以通过系统属性设置代理,如第一个答案中给出的链接中所述,但请注意,它将对整个 JVM 有效。如果有过滤流量的规则,您的数据库连接或其他可能会被过滤。
如果您已经找到如何使用 Proxy 对象处理代理,欢迎您在回答您自己的问题时进行解释!我正在找那个!
我也有同样的问题。 jvm 参数有效,但是当我尝试使用自定义 SocketFactory/SSLSocketFactory 的 Proxy 类时,它失败了。
你有找到克服的方法吗?