2009-09-19 6 views
0

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

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

Я хочу сервер SocketServer или WSGI или что-то вроде Twisted или web2py или Tornado? Все ли они разные? :) Должен ли я использовать модули Apache (mod_wsgi или modjy или mod_python)?

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

Его здорово иметь так много вариантов, но как выбрать?

ответ

0

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

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

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

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

Удачи!