Big Query Java 客户端的代理设置
Proxy settings for Big Query Java client
我正在编写一个 Java 应用程序,它与 Big Query API 进行交互,并且还将 运行 在 docker 容器中。我需要帮助为我的应用程序设置 http 和 https。我不确定是否只为 docker 容器指定环境变量就足够了,还是只需要在 java 代码中设置代理,或者两者都需要,我该怎么做。
提前致谢
有多种选择可以实现这一点。最干净的方法是告诉 JVM 使用系统代理并将代理定义为您的 Docker 容器的环境变量。所有选项如下所述。
选项 1:直接在 Java
中设置代理
您可以使用 System.setProperty(String, String)
:
直接在您的代码中定义代理
System.setProperty("http.proxyHost", "proxy.example.com");
System.setProperty("http.proxyPort", "8080");
请注意,代理是硬编码的。此解决方案仅在所有环境(本地开发、服务器/云上部署)的代理保持相同的情况下才有效。
选项 2:调用 JVM 时指定代理
您可以在调用虚拟机时将代理设置为命令行参数。您不需要在代码中进行额外的配置。
java -Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 YourApplication
如果设置了环境变量,也可以在此处使用它们。这样代理设置可以根据环境动态变化。
选项 3:使用系统代理
第三个选项是告诉 JVM 使用配置的系统代理(你可以按照下面的描述来做)。这又是通过设置命令行参数来实现的。
java -Djava.net.useSystemProxies=true YourApplication
设置系统代理
要为 Docker 设置系统代理,您还有两个选择。
选项a:使用环境变量
您可以直接在 Docker 文件中使用环境变量:
ENV HTTP_PROXY "http://proxy.example.com:8080"
或者您可以在 docker run
命令中指定环境变量:
docker run --env HTTP_PROXY="http://proxy.example.com:8080" your-container
选项 b:配置 Docker 客户端
在 Docker 客户端上,创建或编辑文件 ~/.docker/config.json
并设置代理:
{
"proxies":
{
"default":
{
"httpProxy": "http://proxy.example.com:8080"
}
}
}
此选项仅配置您的本地客户端,您需要相应地配置其他环境。
我正在编写一个 Java 应用程序,它与 Big Query API 进行交互,并且还将 运行 在 docker 容器中。我需要帮助为我的应用程序设置 http 和 https。我不确定是否只为 docker 容器指定环境变量就足够了,还是只需要在 java 代码中设置代理,或者两者都需要,我该怎么做。
提前致谢
有多种选择可以实现这一点。最干净的方法是告诉 JVM 使用系统代理并将代理定义为您的 Docker 容器的环境变量。所有选项如下所述。
选项 1:直接在 Java
中设置代理您可以使用 System.setProperty(String, String)
:
System.setProperty("http.proxyHost", "proxy.example.com");
System.setProperty("http.proxyPort", "8080");
请注意,代理是硬编码的。此解决方案仅在所有环境(本地开发、服务器/云上部署)的代理保持相同的情况下才有效。
选项 2:调用 JVM 时指定代理
您可以在调用虚拟机时将代理设置为命令行参数。您不需要在代码中进行额外的配置。
java -Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 YourApplication
如果设置了环境变量,也可以在此处使用它们。这样代理设置可以根据环境动态变化。
选项 3:使用系统代理
第三个选项是告诉 JVM 使用配置的系统代理(你可以按照下面的描述来做)。这又是通过设置命令行参数来实现的。
java -Djava.net.useSystemProxies=true YourApplication
设置系统代理
要为 Docker 设置系统代理,您还有两个选择。
选项a:使用环境变量
您可以直接在 Docker 文件中使用环境变量:
ENV HTTP_PROXY "http://proxy.example.com:8080"
或者您可以在 docker run
命令中指定环境变量:
docker run --env HTTP_PROXY="http://proxy.example.com:8080" your-container
选项 b:配置 Docker 客户端
在 Docker 客户端上,创建或编辑文件 ~/.docker/config.json
并设置代理:
{
"proxies":
{
"default":
{
"httpProxy": "http://proxy.example.com:8080"
}
}
}
此选项仅配置您的本地客户端,您需要相应地配置其他环境。