Могу ли я найти более подробную информацию о времени ожидания соединения программно? - PullRequest
0 голосов
/ 08 октября 2019

Возникла ошибка тайм-аута соединения, когда связь между двумя экземплярами веб-сервера через порт 8888 и коммутатором L4.

Моя конфигурация следующая:

enter image description here

У меня есть два физических сервера, на каждом из которых есть экземпляр веб-сервера, работающий на порту 8888 и один коммутатор L4.

Балансировка нагрузки на серверы обоих экземпляров - это коммутатор L4.

У меня проблема, когда я получаю файл contentA с обоих серверов через коммутатор L4, где файл contentA.zip существует на сервере, на котором работает каждый экземпляр веб-сервера.

Я протестировал четыре сценария с помощью утилиты wget.

Предварительные условия:

  • URL-адрес файла contentA.zip http://ipaddress:8888/mydir/contentA.zip
  • Оба экземпляра веб-сервера прослушивают порт 8888 на server_ # 1 и server_ # 2.
  • Каждый физический сервер имеет свой собственный IP-адрес, VitualIP для sw L4,RealIP_1 для server_ # 1 и RealIP_2 для server_ # 2.
  • L4 swith может обрабатывать соединения от серверов через порт 8888 для балансировки нагрузки.

Тестирование:

  1. У меня есть файл contentA.zip успешно, когда экземпляр server_ # 1 не работает, а server_ # 2 работает.

wget -c http://VirtualIP:8888/mydir/contentA.zip (запросна сервере № 1)

Я получаю правильный файл contentA.zip, когда экземпляр server_ # 1 работает, а server_ # 2 не работает.

wget -c http://VirtualIP:8888/mydir/contentA.zip(request на server_ #2)

Истекло время ожидания соединения, когда server_ # 1 запущен, а server_ # 2 активен.

wget -c http://VirtualIP:8888/mydir/contentA.zip (запрос на server_ # 1)

wget -c http://VirtualIP:8888/mydir/contentA.zip (запрос на сервере_2)

Наконец, следующие команды выполняются успешно, когда server_ # 1 запущен, а server_ # 2 запущен.

wget -c http://RealIP_2:8888/mydir/contentA.zip (запрос на server_ # 1)

wget -c http://RealIP_1:8888/mydir/contentA.zip (запрос на server_ # 2)

В случае № 3, я думаю, что это какая-то проблема маршрутизации, так что я могу найти ещесведения об ошибке тайм-аута соединения программно на стороне клиента?

У меня мало знаний о коммутаторе L4, но я хочу найти подсказку, что коммутатор не может маршрутизировать эти соединения обоих экземпляров сервера на стороне клиента.

В Java спростая программа сокета клиента, я получил исключение тайм-аута сокета.

Есть ли какие-либо подходы, которые я могу достигнуть этой ситуации? ... как сырое программирование сокетов? Коммутатор L4 для меня как черный ящик.

Команда ping и traceroute для коммутатора достижима. Два физических сервера подключены к коммутатору напрямую.

Буду признателен за любую помощь заранее.

...