Бэкэнд-выбор PyAMF! - PullRequest
       14

Бэкэнд-выбор PyAMF!

0 голосов
/ 19 сентября 2009

Я использую PyAMF для написания серверной части для гибкого приложения, которое будет запрашивать разные группы из сотен разных изображений в зависимости от потребностей клиента. Я использовал WSGI-сервер "simple_server", который предоставляет PyAMF при разработке гибкого кода. Теперь я готов написать надежный бэкэнд, который сможет извлекать изображения из базы данных MySQL и отправлять их как можно быстрее и эффективнее для множества одновременных клиентов.

Документация PyAMF великолепна, потому что она содержит много примеров для подражания, однако я не совсем понимаю, какой бэкэнд я пытаюсь создать.

Хочу ли я сервер SocketServer или WSGI или что-то вроде Twisted или web2py или Tornado? Они вообще все разные? :) Стоит ли использовать вместо этого модули Apache (mod_wsgi или modjy или mod_python)?

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

Здорово иметь столько вариантов, но как мне выбрать?

1 Ответ

0 голосов
/ 01 октября 2009

Краткий ответ, конечно, состоит в том, что это зависит от требований вашего проекта. Сколько одновременных соединений "много"? Сколько времени программист может потратить на проблему? Сколько оборудования вы можете бросить на проблему? ... и т.д ...

Если вы планируете иметь много одновременных клиентов, трудно превзойти Twisted в мире Python. Однако вам придется работать с вашей базой данных асинхронно, чтобы избежать блокировки, и в зависимости от сложности ваших взаимодействий с базой данных, это может быть немного болезненно. Вы в основном ограничены либо использованием twisted.enterprise.adbapi, либо разработкой собственной интеграции витой ORM.

Если вы предпочитаете иметь «простой» код базы данных (то есть вы хотите использовать ORM), вам лучше пойти с проектом (TurboGears / Pylons / plain wsgi), возможно, размещенным с использованием Apache и mod_wsgi. Это может быть довольно масштабируемое решение, и вы можете бесплатно получить много полезного с помощью этих платформ, но это может быть больше, чем вам нужно.

Я бы не использовал в работе один из многих простых wsgi-серверов Python (wsgiref, paster и т. Д.), Если вам действительно нужна высокая производительность.

Удачи!

...