Каковы сетевые альтернативы Python для этого примера? - PullRequest
1 голос
/ 31 декабря 2011

У меня есть среда с 10 рабочими станциями и одним сервером, расположенными в одном физическом месте. Они будут работать с некоторыми проприетарными скриптами Python, которые должны будут общаться друг с другом:

  • серверный скрипт на сервере с клиентскими скриптами на рабочих станциях;
  • серверный скрипт на рабочей станции с клиентскими скриптами на других рабочих станциях;
  • серверный скрипт на рабочей станции с клиентским скриптом на той же рабочей станции.

Таким образом, в целом, что касается реального общения, сама его природа больше ориентирована на неформальный оперативный характер, чем на фиксированные отношения клиент / сервер.

Сами данные будут иметь несколько разных типов, ранжированных в порядке требований к пропускной способности:

  • подача данных в реальном времени (при необходимости ее можно делать реже) без реальных требований к качественной передаче;
  • 100% в реальном времени и с высокими требованиями к целостности передачи;
  • сообщений с частотой один раз в минуту.

Все передаваемые блоки данных имеют небольшой размер, не более килобайтов.

Поскольку я впервые использую сетевые возможности Python, каковы различные способы сделать это? Я провел некоторые исследования сам, но я был озадачен множеством пакетов для работы с сетью / обмена сообщениями во вселенной Python, поэтому решил, что лучше обратиться к сообществу за советом.

Пожалуйста, перечислите плюсы и минусы каждой альтернативы. Если бы я оценил «список пожеланий», это было бы что-то вроде этого:

  • предлагает режимы обеспечения целостности данных как высокого, так и низкого уровня;
  • простота развертывания / разработки / обслуживания;
  • высокая производительность, но не слишком низкий уровень;
  • небольшой ресурсный ресурс;
  • хорошо работает с Qt / PySide;
  • независимая от платформы.

1 Ответ

2 голосов
/ 31 декабря 2011

Я бы заглянул в RabbitMQ ( www.rabbitmq.com ). Это позволит вам настроить сервер в качестве сервера обмена сообщениями RabbitMQ и использовать протокол очереди сообщений для связи между вашими серверами и рабочими станциями. Самым большим преимуществом здесь является то, что вам вообще не нужно беспокоиться о сети.

В остальном я знаю, что Twisted - это популярная библиотека Python для работы в сети (http://twistedmatrix.com/trac/).

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