繁体   English   中英

在 Java 多线程环境中分配唯一代理

[英]Assign Unique Proxy in a Multithreaded Environment in Java

我知道 Java 通过设置系统属性来支持使用代理:

System.setProperty("http.proxyHost", "domain.com");     
System.setPropery("http.proxyPort", "8080");

或者通过使用ProxySelector类。

使用ProxySelector类的好处是它可以只为特定的 URL 启用。

我的需求有点不同。

我想在连接到外部 (SOAP) Web 服务时设置特定代理,但我想更改每个线程的代理。 换句话说,我将使用多个线程连接到 SOAP Web 服务,我希望线程 a使用代理 a线程 b使用代理 b等等(而不是在整个 JVM 中使用一个代理)

这可能吗?

澄清:我想同时访问两个以上不同的代理,而不是按顺序访问,因此任何需要我锁定/同步访问的解决方案都不起作用。

你已经有了解决方案的碎片。 实现自己的ProxySelector ,并在select方法中,根据调用select方法的线程选择不同的代理。

你可以在你的 ProxySelector 实现中有一个Map<Thread,Proxy>来存储和选择每个线程的代理(确保以线程安全的方式访问/更新这个映射)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM