- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个在 JVM/Tomcat 上运行的应用程序,并且它运行的机器都启用了 IPv6 堆栈。我正在尝试向另一台仅支持 IPv4 的计算机发出请求,并且 JVM 始终更喜欢 IPv6 堆栈来发出此请求(我使用 Apache HttpClient
类来发出请求)。
我知道 -Djava.net.preferIPv4Stack=true
属性,但由于我不会在这里讨论的原因,我无法在 JVM 启动时传递它。我什至无法像这样以编程方式设置它(在短时间内):
System.setProperty("java.net.preferIPv4Stack", "true");
...因为这可能会影响 JVM/Tomcat 实例上运行的其他线程(正如我从 this question 和其他人中了解到的)。
所以问题是,如何使这个单个请求通过 IPv4 堆栈(意味着实际使用 IPv4 接口(interface),而不仅仅是连接到 IPv4 端点)?
我考虑过使用 cURL(通过 exec 或通过 libcurl 绑定(bind)),因为curl 根本不使用 JVM。
还有其他想法吗?
最佳答案
Flexo 提到的这一点是有效的!
最终我意识到真正的问题不是 JVM 会从 IPv6 接口(interface)发出请求,这是不可能的,因为代理只会有一个 DNS 条目(正如 Flexo 指出的那样)。
真正的问题是代理 URL 中的拼写错误,导致 JVM 无法解析代理主机;让我感到困惑的是,该异常是从 Inet6Address 类引发的(可能是因为 JVM 还不知道代理仅是 IPv4)。
我改正了拼写错误!现在代理已正确解析,并且请求是通过 IPv4 发出的。谢谢!
关于java - 如何让 JVM 在隔离范围内使用 IPv4 堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16662896/
目前部署在 Kubernetes 中的服务,通过 Calico BGP 将 Service 与集群外网络打通,并在外部的 nginx 中配置 Service 地址对外进行服务暴露。经过一段时间的观察
如发现here , 有一种新的 kube 服务是 IPVS 并且有很多负载均衡算法。 唯一的问题是我没有找到指定这些算法的位置。 我的理解: rr:循环法->循环调用后端pod lc:最少连接-> 将
我想尝试这种新的代理模式以及它为我们的一些应用程序提供的各种调度程序。到目前为止,我一直无法找到更改默认模式的方法 iptables至 ipvs在 GKE 节点上。 每个人都说通过--proxy-mo
我想在现有集群中为 IPVS 启用 Kube-proxy 模式。目前,它在 IPtables 上运行。如何在不影响现有工作负载的情况下将其更改为 IPVS? 我已经安装了所有必需的模块来启用它。另外,
我正在开发的应用程序作为 Kubernetes 集群中的部署运行。为此部署创建的 Pod 分布在集群中的各个节点上。我们的应用程序一次只能处理一个 TCP 连接,并且会拒绝进一步的连接。目前,我们使用
我是一名优秀的程序员,十分优秀!