2015-03-30 4 views
1

Я вызываю Rest API из node.js и Postman-Rest Client (хром-приложение). Всегда использовать тот же компьютер, ту же конечную точку и те же параметры.nodejs/curl http-запрос медленный по сравнению с клиентом postman post

В node.js я получаю ~ 400 мс для http и ~ 700 мс для https. В почтальоне я получаю ~ 250 мс для http и https.

Библиотеки, которые я использовал в node.js: http, https, request, kinvey (клиент узла api). Все они получили тот же результат более или менее.

Почему мой узел работает медленнее?

node.js 0.10.36

Edit: это не про узел, я получаю тот же результат с завитком. при работе в браузере с использованием XMLHttpRequest я получаю лучшие времена. , анализируя журналы, я обнаружил, что TCP-соединение и SSL-квитирование занимает около 500 мс. Возможно, что TCP-соединение и SSL-квитирование работают по-разному в браузере.

+0

ли вы попробуйте отключить использование Http агента? – mscdex

+0

время запуска? Попытайтесь измерить первое время запроса, затем (от успешного обратного вызова) начать и измерить другой запрос –

+0

@ AndreySidorov Я провел около 5-10 запросов, а 400/700 мс - среднее время, я даже исключил первые соединения времени. – taminov

ответ

2

Здесь вы можете найти помощь. Я также сталкиваюсь с проблемами с сервером приложений nodejs на экземпляре linux. Но не обвиняйте nodejs, поскольку реальная проблема в Linux-системах.

Выпуску: любой исходящий запрос от машины нужно найти домен, поэтому он всегда LookUp записи DNS & всегда рукопожатие с защищенными/незащищенными протоколами. На самом деле это сценарий времени. Вы можете проверить, выполнив запрос CURL.

curl --trace-time -v https://outboundserver.com

Решение: Мы должны белый список IP выездного сервера в наших собственных записей DNS. посмотрите ниже ...

В Windows: автоматически сопоставляет серверы в собственных записях DNS.

В Linux: Мы должны вручную добавить хосты, соответствующие IP-адресу. Вручную добавьте запись в файл/etc/hosts под любой конфигурацией, такой как localhost.

127.0.0.1 localhost outbound.servers.ip.address www.outboundserver.com

Наконец проверить с завитка просьбой снова, он должен дать быстрый ответ.

curl --trace-time -v https://outboundserver.com

 Смежные вопросы

  • Нет связанных вопросов^_^