Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Network
  • » Построчное проксирование ответа от удаленноего сервера через twisted [RSS Feed]

#1 Окт. 21, 2009 16:27:41

alrond
От:
Зарегистрирован: 2006-11-15
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Построчное проксирование ответа от удаленноего сервера через twisted

Привет, может кто подскажет какую-нибудь идею.

Дано: браузер, основной вебсервер, куча дополнительных вебсерверов с бекендами.

Запрос из браузера попадает на основной вебсервер, который в twisted выполняет асинхронно некоторую небольшую логику, запросы в базу и делает запросы к множеству удаленных вебсерверов.
Ответы от них приходят неравномерно и сразу по одному отправляются клиенту. Реализация когда ответ целым пришел - это стандартная вещь.

А как возможно реализовать такое проксирование, если ответы от удаленных агентов приходят в соединении с задержками по-строчно или по-символьно? Такое возможно когда удаленный вебсервер не делает кеширования от бекендов. Для нгинкса это можно выключением proxy_cache, lighttpd это по умолчанию использует.

Twisted используется потому что возможно множественное одновременное обращение клиентов и для кажного клиента делается проксирование на десяток удаленных агентов-бекендов.



Офлайн

#2 Окт. 22, 2009 00:10:24

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Построчное проксирование ответа от удаленноего сервера через twisted

alrond
А как возможно реализовать такое проксирование, если ответы от удаленных агентов приходят в соединении с задержками по-строчно или по-символьно?
Не очень понимаю, почему тебя так заботит такая ситуация. С точки зрения тебя, как клиента удаленного сервера, не должно волновать как он тебе их посылает и с какой скоростью отдает ответы. На уже твоего клиента ты же их всё-равно отдаешь целиком подряд, а не вперемешку, да?

Кстати, а что за клиент такой, который ожидает на один запрос несколько ответов? Что-то типа Comet “протокола”?



Офлайн

#3 Окт. 22, 2009 00:31:49

alrond
От:
Зарегистрирован: 2006-11-15
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Построчное проксирование ответа от удаленноего сервера через twisted

В том то и дело, что и своему клиенту я отдаю и кусками, и вперемешку. Могу отдать как одну строку с одной удаленной точки, а потом другую строку из другой точки, и затем вторую строку с первой точки. А могу и 2-3 строки с одного, и строку с другого. Обработкой всего хозяйства на клиенте занимается своя часть на яваскрипте.
Там не совсем комет используется, а постоянные соединения с пересоединением при получении ответа. На хабре есть небольшой пример, где серверная часть на перле: http://habrahabr.ru/blogs/hi/69457/
С этой частью проблемы не возникают, на твистеде за основу взял http://www.olivepeak.com/blog/posts/read/simple-http-pubsub-server-with-twisted
И полные ответы от удаленных точек отдавать тоже не проблема с получением через twisted.web.client.getPage
А вот чтобы эти ответы построчно…Потому как один ответ от точки может длиться от 1 до 20 секунд с строчкой в секунду или две

Чтобы понятней немного было я расскажу что там замешано. Хочу реализовать доступ пользователям к мониторинговым точкам проекта http://www.wipmania.com/. То есть одновременный запуск пингов и трассировок со всех точек со всего мира. Сейчас система работает только для внутренних нужд по работе с базой, поэтому клиент один. И прекрасно обходимся стандартными средствами. А когда юзеров сотни и для каждого делать запрос к 45 удаленным серверам - то тут уже совсем другой подход нужен. Причем получение данных с каждого сервера не должно отражаться на данных с других, а отображаться должны одновременно по мере поступления.



Отредактировано (Окт. 22, 2009 00:39:32)

Офлайн

  • Начало
  • » Network
  • » Построчное проксирование ответа от удаленноего сервера через twisted[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version