具有名称解析更新和主动监控功能的弹性HTTP客户端

我正在尝试基于java.net.http.HttpClient构建HTTP客户端,并且希望对幕后解析的IP地址进行一些控制。

我希望这种机制可以使用请求主机后面的所有IP地址。我正在尝试解决的根本问题是尽快对目标IP的不可用做出反应。可以通过对每个IP进行主动监视并在发送HTTP请求时仅使用可用地址(在TCP,TLS或HTTP级别)来实现。我还想平衡所有IP之间的流量,并主动检测DNS分辨率的变化。我正在与外部HTTPS服务保持长期连接。

目前,HTTP Java客户端仅使用一个IP地址,并且维护了以该IP地址为目标的连接池。

我通过使用提供给HTTP客户端的URL中的IP地址并使用与期望名称匹配的特定信任管理器来建立解决方法,以保持TLS验证。它有几个局限性。特别是,它会更改HTTP请求,这可能会影响您根据目标服务器而收到的响应。它还会强制您要定位的主机使用一个HTTP客户端。我创建了一个小的GitHub repository来说明此变通办法。

我探索了一些HTTP客户端实现,到目前为止,我还没有找到实现这种机制的任何方法。尤其是,我陷入了jdk.internal.net.http.HttpRequestImpl#getaddress的困境,这是可见的软件包,并且无法进行任何扩展。

Jetty HTTP客户端(请参阅org.eclipse.jetty.util.SocketaddressResolver)或HTTP Apache客户端中存在这种机制。

是否可以使用任何现有机制来正确解决此类问题?如果不提供,是否有办法做出贡献或提出改进要求?

wx071134 回答:具有名称解析更新和主动监控功能的弹性HTTP客户端

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3143652.html

大家都在问