Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Web
  • » Способы передачи больших объемов данных между серверами [RSS Feed]

#1 Июнь 9, 2011 16:40:31

derdmitry
От:
Зарегистрирован: 2011-06-09
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Способы передачи больших объемов данных между серверами

Используем xmlrpc, передаем довольно большой объем данных (порядка 50к-100к сложных объектов). При этом используется промежуточный сервер. В процессе передачи/получения данных расходуется очень много ресурсов памяти и процессора…
Какие есть альтернативные способы передачи массивов данных?



Офлайн

#2 Июнь 9, 2011 16:58:51

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Способы передачи больших объемов данных между серверами

json, protobuf

Если позволяют обстоятельства, уменьшить размер пакетов.



Офлайн

#3 Июнь 9, 2011 17:23:42

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Способы передачи больших объемов данных между серверами

каков объем данных?
можно использовать веб сервер, в качестве отдачи и проксирования.
закачку через wget / urllib

Офлайн

#4 Июнь 9, 2011 17:36:37

derdmitry
От:
Зарегистрирован: 2011-06-09
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Способы передачи больших объемов данных между серверами

Объем данных 200-500 Мб.
Есть три проекта на pylons.
Их связывает центральный узел(pylons.controllers.XMLRPCController), который по запросу собирает данные со всех проектов и отдает запросившему.
При этом расход памяти доходит доходит до 500-700 Мбайт и занимает от 300 секунд.
Выборка и обработка данных, до передачи, на начальном узле из базы занимает 1-2 с.



Отредактировано derdmitry (Март 14, 2013 04:33:03)

Офлайн

#5 Июнь 9, 2011 22:26:31

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Способы передачи больших объемов данных между серверами

Тогда действительно wget.
Но в качестве протокола использовать FTP.

Пусть скрипт сохраняет локально файл и возвращает FTP-ссылку, которую с помощью wget получает центральный узел.



Офлайн

#6 Июнь 10, 2011 13:12:08

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Способы передачи больших объемов данных между серверами

Lexander
Тогда действительно wget.
Но в качестве протокола использовать FTP.

Пусть скрипт сохраняет локально файл и возвращает FTP-ссылку, которую с помощью wget получает центральный узел.
почему ftp? у него есть докачка?

Офлайн

#7 Июнь 10, 2011 17:23:54

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Способы передачи больших объемов данных между серверами

o7412369815963
почему ftp?
Исходя из размера файлов для минимизации накладных расходов (см. описание протокола).
o7412369815963
у него есть докачка?
Докачка - это свойство сервера, а не протокола.
Разве вы никогда не видели сервера с докачкой по ФТП?



Офлайн

#8 Июнь 11, 2011 08:29:42

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Способы передачи больших объемов данных между серверами

Lexander
Докачка - это свойство сервера, а не протокола.
Разве вы никогда не видели сервера с докачкой по ФТП?
Не только сервера, но и клиента. Неа не видел, хотя шибко и не рассмартивал. В базовом наборе команд докачки нет.

Кстати, раз пошла такая тема, тогда стоит рассмотреть nfs и ssh. Я как раз их использую для передачи файлов (особенно если передача в пределах локальной сети, для неё не нужна докачка таких смешных объемов).

Офлайн

#9 Июнь 11, 2011 17:29:59

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Способы передачи больших объемов данных между серверами

Согласен.



Офлайн

#10 Июнь 12, 2011 00:24:27

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Способы передачи больших объемов данных между серверами

o7412369815963
Lexander
Докачка - это свойство сервера, а не протокола.
Разве вы никогда не видели сервера с докачкой по ФТП?
Не только сервера, но и клиента. Неа не видел, хотя шибко и не рассмартивал. В базовом наборе команд докачки нет.
Поищите тут описание команды REST: http://www.ietf.org/rfc/rfc959.txt



Офлайн

  • Начало
  • » Web
  • » Способы передачи больших объемов данных между серверами[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version