Я испытываю очень странный блок потока более 4 секунд при поиске записи DNS (?) При запуске производителя kafka, исключение:
2019-02-11 10:00:33,982 WARN [vertx-blocked-thread-checker] io.vertx.core.impl.BlockedThreadChecker - Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 4172 ms, time limit is 1000 ms
io.vertx.core.VertxException: Thread blocked
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)
at java.net.InetAddress.getAllByName0(InetAddress.java:1277)
at java.net.InetAddress.getAllByName(InetAddress.java:1193)
at java.net.InetAddress.getAllByName(InetAddress.java:1127)
at java.net.InetAddress.getByName(InetAddress.java:1077)
at java.net.InetSocketAddress.<init>(InetSocketAddress.java:220)
at org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:53)
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:406)
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:304)
Это происходит один раз (не каждый раз) Можно ли программно отключить поиск ipv6 в vertx? Как я могу сделать, чтобы эта ошибка исчезла?
С протоколом IPV6 вы не можете найти хост, поэтому у вас могут быть две проблемы. У вас плохой хост, но, как вы сказали, иногда он работает, проблема должна быть в вашем компьютере, поэтому проверьте его. Но если вы хотите отключить IPV6, эта конфигурация находится в конфигурации Java, поэтому запустите java с Djava.net.preferIPv4Stack=true
Нет, развертывание приложения на сервере Ubuntu 16.04 LTS
@LucasMilotich Я пробовал этот флаг раньше - он создал для нас некоторые другие проблемы, может быть, есть другой способ программно в vert.x отключить только поиск адресов ipv6?
Параметры веб-клиента Vertx наследуют параметры HTTP-клиента, поэтому вы можете установить любой из них, но я не уверен, что вы можете указать протокол ip. Попробуйте прочитать http java docs, чтобы узнать, есть ли какой-либо cfg в опциях http клиента http. Вы пытались отключить ipv6 с компьютера?

После добавления флага "-Djava.net.preferIPv4Stack=true" проблема устранена, но были обнаружены некоторые другие проблемы с InetAddress.getLocalHost(), который возвращает localhost\127.0.0.1 для имени хоста\ip...
чтобы решить эту проблему, мне пришлось отредактировать /etc/hosts на машинах, чтобы:
# This file is automatically generated by our bootstrap script.
<MACHINE_IP> <MACHINE_HOSTNAME> # <-- Ordering ...
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
# ::1 ip6-localhost ip6-loopback <MACHINE_HOSTNAME> <-- IPV6 must be disabled
после отключения всех разделов IPv6 из /etc/hosts правильное имя хоста и IP-адрес были разрешены, и моя программа запустилась правильно
Вы разрабатываете на OSX? Тогда вы, вероятно, попали в этот justthesam.com/2016/10/…