Domanda

Ho usato PyAMF di scrivere un backend per un'applicazione flessibile che richiederà diversi gruppi di centinaia di immagini diverse a seconda di ciò che il cliente ha bisogno. Sono stato con il server WSGI "simple_server" che le forniture PyAMF durante lo sviluppo del codice di Flex. Ora sono pronto a scrivere un backend robusto che sarà in grado di tirare le immagini da un database MySQL e inviare loro il più velocemente possibile e nel modo più efficiente possibile per molti clienti simultanei.

La documentazione PyAMF è grande perché essi forniscono molti esempi da seguire, ma io sono confuso su ciò che tipo di backend che sto cercando di creare.

Voglio un SocketServer o un server WSGI o qualcosa di simile ritorto o web2py o Tornado? Sono questi anche tutti diversi? :) Dovrei usare moduli di Apache invece (mod_wsgi o modjy o mod_python)?

Mi rendo conto che questo probabilmente tocca molti dibattiti aperti, quindi forse si può solo punto me qualche buona sintesi di questi dibattiti?

Il suo bello avere così tante opzioni, ma come faccio a scegliere?

È stato utile?

Soluzione

La risposta breve è, naturalmente, che dipende dalle esigenze del progetto. Quante connessioni simultanee è "molto"? Quanto tempo programmatore si può buttare il problema? Quanto hardware si può buttare il problema? ... ecc ...

Se si prevede di avere un sacco di client concorrenti, è difficile da battere ritorto nel mondo Python. Tuttavia, avrete a che fare con il database in modo asincrono per evitare il blocco, e, a seconda della complessità le interazioni di database sono, questo può essere un po 'di dolore. Stai fondamentalmente limitato a sia utilizzando twisted.enterprise.adbapi o venire con la propria integrazione twisted-ORM.

Se si preferisce avere codice del database "facile" (vale a dire che si desidera utilizzare un ORM), è meglio andare con un (/ Piloni / plain WSGI TurboGears) del progetto, probabilmente ospitato utilizzando Apache e mod_wsgi. Questo può essere una soluzione abbastanza scalabile, e si ottiene un sacco di roba gratuitamente utilizzando questi quadri, ma può essere più del necessario.

Vorrei evitare di usare uno dei tanti server Python WSGI pianura là fuori (wsgiref, paster, etc.) nella produzione se si vuole veramente ad alte prestazioni.

Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top