Я хотел бы использовать http-proxy-узел для создания прокси-сервера с наименьшими соединениями. Другими словами, он выбирает бэкэнд, который в настоящее время имеет наименьшие соединения. Прокси имеет событие «end», но оно не передает вам никакой информации, поэтому я не уверен, как я могу увеличивать/уменьшать счетчик для каждого из моих бэкендов с текущим числом одновременных запросов.node http-proxy less connections proxy
ответ
Я думаю, вы можете подождать, пока ответ будет отправлен клиенту.
Например:
var backends = [
{ host : 'backend1', port: 80, active : 0 },
{ host : 'backend2', port: 80, active : 0 },
{ host : 'backend3', port: 80, active : 0 },
{ host : 'backend4', port: 80, active : 0 },
];
httpProxy.createServer(function (req, res, proxy) {
var buffer = httpProxy.buffer(req);
// Pick the backend with the least active requests (naive implementation).
var backend = backends.sort(function(a, b) {
return a.active - b.active;
})[0];
// Add a new active request.
backend.active++;
// Proxy the request.
proxy.proxyRequest(req, res, {
host : backend.host,
port : backend.port,
buffer : buffer
});
// When the response is finished, decrease the count.
res.on('finish', function() {
backend.active--;
});
}).listen(8000);
Спасибо! Я, вероятно, настрою res.on («финиш») до того, как я прокси.proxyRequest() на всякий случай, когда res завершится, прежде чем я получу настройку обратного вызова. – Dave
@Dave, что не является строго необходимым ([этот ответ] (http://stackoverflow.com/a/11614706/893780) объясняет, почему) :) – robertklep
Спасибо, это делает мне гораздо больше смысла! – Dave
- 1. Apache2 Proxy WebSocket Connections?
- 2. Ошибка Node-HTTP-Proxy
- 3. http to https node proxy
- 4. node-http-proxy socket.io websocket connection
- 5. node-http-proxy websocket таймаут с Socket.io
- 6. Ошибка: connect EMFILE и node-http-proxy
- 7. nodejs node-http-proxy setup с кешем
- 8. nginx proxy pass Node, SSL?
- 9. nginx vs node-http-proxy
- 10. Node Http Proxy - основной обратный прокси-сервер не работает()
- 11. Как добавить заголовки в node-http-proxy Ответ
- 12. Доступ к заголовкам ответа с использованием node-http-proxy
- 13. Как мне перенаправить 302 с node-http-proxy?
- 14. Node-http-proxy: запросы на ressources перенаправляются на index.html
- 15. По умолчанию маршрут с помощью node-http-proxy?
- 16. Глобальные операции Graph дает Node Proxy не Node
- 17. NPM -node-servicenow library-Proxy Support
- 18. вызовы базы данных node-proxy и async
- 19. Nginx Reverse Proxy Subdomain for Node Applications
- 20. Проксирование без перенаправления node-http-proxy
- 21. node-http-proxy set img заголовки запросов
- 22. node.js node-http-proxy не получает трейлеры
- 23. Ошибка при использовании node-http-proxy с expressjs
- 24. Selenium webdriver.Firefox (proxy = proxy) недействителен
- 25. Как сообщить wsimport использовать httpproxy в сгенерированные классы
- 26. Socks proxy in android
- 27. Proxy to Jira API
- 28. WebServices ant WSDLToJava с пользователем и паролем HTTPProxy
- 29. Есть ли альтернатива для API Connections Connections?
- 30. node-proxy работает с хостом: порт, но не принимает путь сокета unix
Довольно уверен, что нет ничего, что там может это сделать - вы, вероятно, придется создать его самостоятельно, используя WebSockets. Или вы посмотрели на [satellite] (https://npmjs.org/package/satellite)? – brandonscript
Спасибо за указатель на спутник. В конечном счете, я также собираюсь управлять этим процессом на локальном хосте (может быть java, node и т. Д.) И иметь некоторые другие функции по их рециркуляции и т. Д., Поэтому спутниковый код будет хорош для просмотра в. – Dave