TL; DR:是否可以克服Vertx阻止DNS问题?最好使用Vertx HttpClient?
我正在尝试使用Vertx来抓取一些不同主机的网址。我目前正在使用Vertx HttpClient这样做,我最近遇到了阻塞DNS调用的问题,这有时会阻止我的HttpClient请求(因此也会阻止事件循环)。此问题的描述为here。
我不能在“executeBlocking”函数中使用阻塞http客户端,因为我使用Vertx解决方案,因为它是异步的,应该能够处理我期望的负载。此外,我无法自己解析IP地址,因为它只是在我尝试获取许多不同的主机时解决了特定主机的问题
所以我的问题是:这个问题是否有任何(相对)优雅的解决方案,不需要我等待未来的Netty版本?最好是使用原生Vertx HttpClient的东西。
提前致谢
答案 0 :(得分:1)
好的,所以在经过几天挖掘这个问题之后,我找到了几个可能解决这个问题的方法。我希望这可以帮助某人
这些是可能的解决方案
所有这些解决方案均来自Vertx邮件列表。您可以看到完整的通信here(包括一些代码示例)
目前我在群集中运行该程序,但我没有遇到此问题。如果我以后需要解决这个问题,我可能会针对第一个解决方案(除非当时发布Netty 4.1)
我希望我能找到所有正确的解决方案,如果有人看到这个并且有更好的想法或更正,我会非常感激
答案 1 :(得分:0)
其他选择是通过在命令行中添加-Dvertx.disableDnsResolver
来disable dns解析器。