Увеличение активности обмена данными между микросервисами зачастую является проблемой в архитектуре современных IT решений. Выжать максимум и выжить любой ценой — серьёзный вызов для любой разработки. Поэтому поиск оптимальных решений — это не прекращающийся процесс. В статье кратко изложены проблемы, которые могут возникнуть при высоконагруженном использовании http запросов и пути их обхода.
Рубрика «keep-alive»
Грабли на пути к keep-alive
2020-04-02 в 11:19, admin, рубрики: .net, http, keep-alive, nginx, высоконагруженные проекты, разработка .netИстория блужданий по документации Haproxy, или на что стоит обратить внимание при его конфигурации
2019-02-06 в 7:37, admin, рубрики: devops, haproxy, http, keep-alive, network, tuning, микросервисы, Сетевые технологии, системное администрированиеИ снова здравствуйте!
В прошлый раз мы рассказывали о выборе инструмента в Ostrovok.ru для решения задачи проксирования большого количества запросов к внешним сервисам, никого при этом не положив. Статья закончилась выбором Haproxy. Сегодня я поделюсь нюансами, с которыми мне пришлось столкнуться при использовании этого решения.
Как я отлаживал python httplib и httplib2
2015-12-14 в 8:51, admin, рубрики: httplib, keep-alive, put, pythonПонадобилось мне однажды у себя в проекте реализовать работу с файловым хранилищем с использованием HTTP REST API. Проект разрабатывается на python, к тому же уже был реализован http-клиент с использованием библиотеки httplib2, поэтому было решено расширить функциональность http-клиента и работать с файловым хранилищем через туже библиотеку. Проблема возникла при загрузке файлов на сервер. Первый PUT запрос выполняется, далее все последующие запросы отказываются выполняться — 500 Internal Server Error.
Смотрю Wireshark'ом выясняется что после первого запроса сервер посылает в заголовках ответа connection: keep-alive и следом через 5 секунд закрывает соединение. Всё просто — это таймаут keep-alive установлен на сервере.
А вот как это выглядит на клиенте:
Читать полностью »
PhpStorm. Лайфхак: keep-alive automatic upload на коленке
2013-11-19 в 11:47, admin, рубрики: automatic, IDE, keep-alive, node.js, nodejs, phpstorm, upload, Блог компании Rangg, Веб-разработка, метки: automatic, IDE, keep-alive, nodejs, phpstorm, uploadМногие сталкивались с проблемой Automatic Upload в PhpStorm (сюда можно вписать другую IDE с подобной проблемой) при работе на удаленном сервере. Называть ее «проблемой» тоже можно с натяжкой, но тема жива: PhpStorm при заливке измененных файлов каждый раз поднимает новое подключение, что занимает достаточно ощутимое время (у меня уж точно: хостинг-провайдер Hetzner), поэтому приходится ждать несколько секунд прежде чем изменения зальются.
Под катом я расскажу как на коленке набросал скрипт keep-alive подключения с Automatic Upload проекта.
Http запросы — мы все это делаем неправильно
2013-06-23 в 7:59, admin, рубрики: curl, http, keep-alive, php, python, requests, stripe, Сетевые технологии, метки: curl, http, HTTP/1.1, keep-alive, PHP, python, requests, stripe В проекте, над которым я работаю, мы используем огромное количество сторонних библиотек. Многие из них — адаптеры для различных сервисов. Что их объединяет, это то, что они работают с сетью. Json поверх http, soap поверх http, какие-то свои протоколы поверх http. Т.е. все так или иначе используют http. И как ни удивительно, мало кто из них пользуется преимуществами его последней версии. Я не поленился заглянуть в википедию, прошло ровно 14 лет как была принята спецификация http 1.1. И потому я решил обратиться с призывом:
Да, речь пойдет о keep alive. Суть в том, что, начиная с http 1.1, клиент и сервер могут договориться не закрывать установленное tcp-соединение после завершения запроса, а переиспользовать его для следующих запросов. Это нужно потому, что на установку соединения требуется время. Иногда это время больше, чем время самого запроса. И если все серверы уже давным-давно такую возможность поддерживают, а все браузеры и большинство других клиентов её используют, то у разработчиков различных библиотек для популярных языков программирования здесь почему-то пробел.Читать полностью »
Преодоление разрыва удаленного соединения при отсутствии действий пользователя
2012-10-23 в 6:21, admin, рубрики: Ensemble, intersystems cache, keep-alive, openssh, Блог компании InterSystems, системное администрирование, метки: Ensemble, InterSystems cache, keep-alive, openssh, tcp-ipПри работе с GUI и терминальными приложениями нередко случается, что пользователь, работая в режиме удаленного доступа (как правило, через Интернет), покинув компьютер минут на 15, по возвращении обнаруживает, что программа зависла. На любое действие она отвечает ошибкой, содержащей примерно такие фразы: «Потеряна связь с сервером», "[WINSOCK] virtual circuit reset by host" и т.п. Наблюдается такое и при выполнении «долгоиграющих» методов (запросов к серверу), в которых не предусмотрен вывод прогресс-бара или какая-либо интерактивность.
Данная проблема характерна не только для GUI и терминальных решений на базе СУБД Caché и Ensemble компании InterSystems, а вообще для любого клиент-серверного взаимодействия по протоколу TCP/IP. Обычно она решается на прикладном уровне путём периодического обмена пустыми сообщениями специального вида, предназначенными лишь для того, чтобы просигнализировать о том, что приложение «живо».
Ниже о том, как можно решать эту проблему без программирования.
Читать полностью »
Крестики-нолики на Erlang
2012-06-30 в 13:49, admin, рубрики: erlang, Erlang/OTP, keep-alive, крестики-нолики, метки: erlang, keep-alive, крестики-ноликиВступление
В статье мы попробуем написать игру крестики-нолики на поле размером 10x10, игрока (человека) с ботом (компьютер) с возможностью игры через браузерЧитать полностью »