Направляя http-трафик

У меня есть ситуация, когда большая группа серверов (X) по запросу должна запрашивать данные с меньшего набора веб-серверов (Y).

В худшем случае, если все серверы в X решат извлечь разные запросы одному серверу в Y. Это будет количество соединений X, что может привести к очень большому всплеску трафика. В лучшем случае, если 1 сервер в X ударил 1 сервер в Y в тандеме. Жизнь не работает так.

Одной из идей для развлечения является размещение прокси, похожего на squid между X и Y. Все X-серверы могут подключаться к этому прокси, но это приведет к нескольким постоянным (http keepalive) соединениям с Y. Если скажут немногие, 3 или 4, то это будет воронка. Если бы мы могли тогда ограничить скорость этих подключений, и трафик решил бы расти необычно высоко, мы бы никому не причиняли вреда, кроме нас самих.

Мысли?

2 ответа

Посмотрите на nginx в конфигурации обратного прокси / кэширования или, если вам удобнее, с Apache, Apache2 + mod_proxy, mod_proxy_balancer и mod_cache.

Рассматривали ли вы балансировку нагрузки? Есть множество технологий, которые достигают этого. Я предпочитаю LVS, но другие решения, применимые к балансировке нагрузки веб-сервера, включают...

LVS имеет разные планировщики, которые точно определяют, как обрабатываются соединения. Он также очень легкий, я запускаю его на небольшом аппаратном оборудовании, обрабатывающем трафик для большого объема веб-сайта.

Другие вопросы по тегам