【发布时间】:2014-03-15 18:50:03
【问题描述】:
我正在用 Java 编写我的服务器,一整天,我的服务器必须同时通过 5 个不同的代理连接到其他服务器并收集数据。但是,通过 stackexchange 阅读有关 java 代理设置的信息,我看到当您设置代理时,它的效果是 VM 范围的,这意味着 .jar 正在执行的任何网络活动,如果某个不同的线程设置了一个代理,它将通过代理执行它jar 中的代理设置。
我目前正在使用这种设置代理的方法,根据一些测试,它实际上非常实用并且运行速度很快。
System.getProperties().put( "http.proxyHost", host );
System.getProperties().put( "http.proxyPort", port );
但是,我真的负担不起让 5 个罐子用不同的代理做同样的事情,我试过了,这将是一个简单的解决方案,但是我不能只为此使用那么多 ram,因为我的服务器很大。
【问题讨论】:
-
不知道,但也许this class 会让你感兴趣。还有更多this one
-
我建议使用支持 http 代理的 AsyncHttpClient github.com/AsyncHttpClient/async-http-client
-
感谢您的建议。我正在阅读 java Proxy 类,我读到它可以与 URLConnection 类一起使用,它没有说效果将是 VM-Wide,你使用该类的方式没有意义无论哪种方式,vm 范围的效果。
-
没错。它仅适用于您使用它的连接。您问题中的术语不正确。系统属性是 JVM 范围的,而不是每个 jar 的。
标签: java networking proxy