2010-01-27 7 views
0

Je prévois de créer une application web fonctionnant sur un seul ordinateur et d'exploiter les ressources matérielles aussi efficacement que possible. La logique de l'application ne sera pas complexe. Ce qui suit est ma conception:J'ai conçu une architecture pour une application web fonctionnant sur un seul ordinateur

OS: Linux (CentOS 5)

Web Server: Nginx

script Web: PHP

Base de données: armoire Tokyo + Tokyo Tyrant

Index: Sphinx

Je ne vais pas utiliser de SGBDR tel que MySQL, parce que je pense qu'un magasin de valeurs-clés (Tokyo cabinet) avec un indexeur (Sphinx) rencontrera tous les a besoin de déployer une application web normale, avec aussi de meilleures performances que MySQL.

Ma question est la suivante: ce design est-il une architecture efficace pour un seul ordinateur? Ou comment l'améliorer?

(Je sais que cette question pourrait être subjectif, mais je vraiment besoin de votre aide)

Merci beaucoup ~

EDIT:

L'ordinateur que je vais héberger mon application sur, est un PC normal, comme 8 Go ~ 16 Go de mémoire, 500G ~ 1 To de disque dur, etc. Je pense qu'il n'aura pas besoin de considérer la "scalabilité". Chaque première étape d'une application Web est lancée à partir d'une machine et ce sera toujours le début.

+0

Quelles sont les spécifications sur la machine? –

+0

Quel est l'avantage d'une application «web» fonctionnant sur un seul ordinateur? Une application basée sur les formulaires fenêtrés ne serait-elle pas plus appropriée? –

Répondre

1

Choix de DB

Je pense que le choix du type de base de données que vous faites dépend moins du nombre d'ordinateurs du système est hébergé sur. Je pense que cela devrait être plus une fonction de la qualité des données que vous voulez/devez conserver. Par exemple, si vous devez stocker les adresses de livraison d'un client, vous devez en tenir compte dans votre structure de stockage. Une valeur paire nom peut sembler une structure assez facile pour commencer, mais si vous prévoyez une des conditions suivantes, vous devriez envisager de passer à un système de base de données standard

  • garder la trace des changements
  • activité de reporting/rapports
  • utilisateurs simultanés

Performance

Cela dépend de votre code, images, c ontent, la mise en cache, etc. autant que sur votre base de données.

1

bien, une façon de voir est de charger le tester: http://grinder.sourceforge.net/

Je ne l'ai jamais travaillé avec le cabinet de Tokyo, mais si elle est fonctionnellement suffisante, alors il sera probablement beaucoup plus rapide qu'un DB.Cependant, à long terme, les économies que vous réaliserez en réglant votre application pour qu'elle fonctionne sur une seule case seront rapidement perdues si vous commencez à évoluer au-delà de cette case. essayer d'ajouter beaucoup de mise en cache, et les hacks pour obtenir l'application pour être plus rapide iront seulement si loin. Plus important encore, vous devriez essayer de réfléchir à la facilité avec laquelle vous pouvez découpler les différentes couches.