IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Load Balancing en PHP


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Load Balancing en PHP
    Bonsoir,


    Je crée actuellement un site, une plateforme d'upload de fichier.

    Donc tout fonctionne sans problèmes lors de la phase de développement (1 serveur prévu), mais avec un nombre importants d’utilisateurs, le serveur ne va pas tenir la charge.
    Donc j'ai l'intention de prendre 3 serveurs dédiés 1Gbits/s.


    Mais comment faire le lien avec mon code ? Car lors de l'envoie d'un formulaire en html (qui va contenir le fichier à uploader) il faut faire pointer ce dernier vers la page php qui va s'occuper du traitement/réception du fichier.

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    api.out_form.onsubmit =function(){
        this.out_form.setAttribute('action', 'http://127.0.0.1/upload/handle_up.php');
    };

    Ce code javascript permet de faire pointer mon formulaire html vers l'URI de mon serveur: http://127.0.0.1/upload/handle_up.php au moment de l'envoie.

    Donc biensure actuellement je suis en local, mais mettons que j'ai 3 serveurs, avec 1 nom de domaine, on va l’appeler: uploadomain.com.

    Chaque serveur sera rattaché à un sous domaine:

    exemple:

    serveur 1: -> s1.uploadomain.com
    serveur 2: -> s2.uploadomain.com
    serveur 3: -> s3.uploadomain.com


    Je souhaiterai donc au moment du "submit" du formulaire, pourvoir choisir 1 des trois serveurs. Pour ce faire, j'ai pensé à faire comme font tout les sites d'hébergement de fichiers (rapidshare, bayfiles, depositfiles, etc...).C'est à dire au moment de l'event js submit, faire une requête ajax pour récupérer le domain du serveur qui va s'occuper de recevoir le fichier. Par exemple: s2.uploadomain.com.

    Vous l'aurez compris, au même moment, une autre personne sur le site qui voudrait uploader un fichier, pourrait tomber sur le serveur: s3.uploadomain.com
    Ceci sera géré automatiquement au niveau du répartiteur de charge.

    Et c'est là tout le problème, apparemment le load balancing se fait au niveau matériel/réseau ! Comment faire le lien avec mon code pour y accéder en PHP ?


    C'est possible de le faire, car quasiment tout les hébergeurs de fichier le font.
    Exemple: Bayfiles.com, lors du onsubmit, envoie une requête ajax pour récupérer le domain du serveur qui va recevoir le fichier et d'autres valeur dans un object json:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"upload_url":"http:\/\/s6.baycdn.com\/upload\/5ffdc660\/50721bcc\/11\/0?X-Progress-ID=506c9d8cCEFCCEEE1DB3C955705D400FF0799BFA","progress_url":"http:\/\/s6.baycdn.com\/progress\/?X-Progress-ID=506c9d8cCEFCCEEE1DB3C955705D400FF0799BFA&callback=?","success_url":"http:\/\/bayfiles.com\/upload_success?X-Progress-ID=506c9d8cCEFCCEEE1DB3C955705D400FF0799BFA"}


    Comme vous le voyez: "upload_url":"http:\/\/s6.baycdn.com[...]"

    Je remercie d'avance les personnes qui prendront le temps de m'aider

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Le load balancing est transparent pour le développeur (encore heureux).

    Avec trois serveurs , tu as normalement un loadbalancer qui choisi d'envoyer la requête à traiter sur le serveur 1 ou le serveur 2. Mais tous les serveurs sont sous le même domaine.

    De plus avant de se lancer dans du véritable load balancing (qui est le boulot d'un admin système pas d'un développeur) on procède généralement comme ça :

    1 serveur : PHP + SQL + datas
    2 serveurs : 1 serveur PHP/HTTP, 1 serveur SQL
    3 serveurs : 1 serveur PHP/HTTP , 1 serveur SQL , 1 serveur HTTP static (pour servir , images,fichiers ....)
    4 et + : là tu commence à mettre en place des load balancing http , de la réplication sql , etc...

    Mais bon avec les solution de cloud actuel je suis pas convaincu que ce soit nécessaire. Tu prend une offre de cloud que tu fais évolué au fil du temps , ca sera sans doute bien plus rentable.

    Si tu souhaites faire un hébergeur de fichier ce qui risque de vite coincer c'est le stockage et le nombre max de requêtes http simultanées (un upload bloque une connexion http sur toute la durée de l'envoi)
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Load balancing avec 2 wan
    Par beloc dans le forum Réseau
    Réponses: 3
    Dernier message: 04/10/2006, 01h24
  2. couplage apache2.2-tomcat5.5.17 et load balancing
    Par n00noors dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 10/08/2006, 09h36
  3. [Tomcat 5] Load Balancing
    Par Sniper37 dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 13/03/2006, 11h20
  4. (load balancing) choix de provider
    Par timsah dans le forum Développement
    Réponses: 1
    Dernier message: 20/09/2005, 17h42
  5. [Load balancing] Quel serveur de retour ?
    Par ruready dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 6
    Dernier message: 11/05/2005, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo