Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di miki.
    Registrato dal
    Oct 2004
    Messaggi
    1,927

    Load balancer tra applicazione php e mysql

    Scusate se e' la sezione sbagliata, ma non sapevo dove metterlo, visto che e' relativo al PHP ho deciso di metterlo in questo forum.

    Considerate una situazione dove da un lato ho 3 webservers (apache+php 5.3) e dall'altro 2 mysql server in replica master+master

    Come faccio a far si che ci sia un load balancer tra php e mysql?

    - Cambiare il codice e integrare uno script che controlla il server, e se questo e' giu' chiama il secondo. Ma laborioso (cambio del codice) e non funziona da load balancer.

    - Potrei usare mysql proxy o un normale load balancer, ma questo diventerebbe a point of failure, e quindi ridurrebbe la ridondanza dei due mysql master+master

    - Un'altra soluzione potrebbe essere di installare ldirectord e heartbeat sui mysql server, ma cosi' creerebbe una situazione di attivo-passivo invece di attivo attivo e quindi dimezzerebbe le capacita' del database. Potrei mettere ldirectord e heartbeat su 2 load balancer che bilanciano le connessioni ai 2 database, ma vorrebbe dire 2 extra server e la soluzione diventerebbe dispendiosa

    - Usare mysqlnd_ms, ma non riesco a capire se supporta il master-master.
    The plugin supports using only one master server per section
    http://www.php.net/manual/en/mysqlnd...figuration.php
    invece qui dice che supporta mysql cluster
    http://www.php.net/manual/en/mysqlnd...edclusters.php


    Altre possibili soluzioni?
    You cannot discover new oceans unless you have the courage to lose sight of the shore

    Caro Dio, quando nelle preghiere ti chiedevo di far morire quel pedofilo truccato, liftato,mentalmente disturbato e di colore indefinibile, non intendevo Michael Jackson.

  2. #2
    Dove si trovano i server? Nel senso stiamo parlando di qualcosa di fisico in housing o è in cloud?

    La soluzione più semplice, ma anche meno adatta, che mi viene in mente assunto che i web server siano già in balance tra di loro è che un web server scriva diretto su di un DB e l'altro di web server su di un altro DB. Rimane il problema del terzo web server ovviamente.

    Mi verrebbe da un lato di suggerire di passare ad un master/slave... detto che se è stato deciso di passare ad un master/master dovrebbe essere stato fatto con cognizione di causa e quindi il master/slave sarebbe già da escludersi.

    Detto questo mentre scrivevo ho trovato questo link che ti posto:

    http://blog.ulf-wendel.de/2011/php-a...hout-rw-split/

    Dagli una lettura, non ho finito di leggerlo nemmeno io ancora, ma potrebbe fare al caso tuo a quanto sembra.

    Fammi sapere.

  3. #3
    O.o

    ma che diavolo è successo al mio utente?

  4. #4
    Utente di HTML.it L'avatar di miki.
    Registrato dal
    Oct 2004
    Messaggi
    1,927
    Originariamente inviato da Stillen
    Dove si trovano i server? Nel senso stiamo parlando di qualcosa di fisico in housing o è in cloud?

    La soluzione più semplice, ma anche meno adatta, che mi viene in mente assunto che i web server siano già in balance tra di loro è che un web server scriva diretto su di un DB e l'altro di web server su di un altro DB. Rimane il problema del terzo web server ovviamente.
    In questo caso se un DB va giu', tira giu' anche il webserver, quindi solo il 50% funzionerebbe e non e' una soluzione ideale

    Originariamente inviato da Stillen
    Mi verrebbe da un lato di suggerire di passare ad un master/slave... detto che se è stato deciso di passare ad un master/master dovrebbe essere stato fatto con cognizione di causa e quindi il master/slave sarebbe già da escludersi.

    Detto questo mentre scrivevo ho trovato questo link che ti posto:

    http://blog.ulf-wendel.de/2011/php-a...hout-rw-split/

    Dagli una lettura, non ho finito di leggerlo nemmeno io ancora, ma potrebbe fare al caso tuo a quanto sembra.

    Fammi sapere.
    Il link parla del plugin che ho gia' messo nella lista. Da quello che ho capito solo la versione > 1.1 permette di fare il loadbalancer con piu' master, ma non ho ancora capito quanto sia maturo da poter mettere in produzione
    You cannot discover new oceans unless you have the courage to lose sight of the shore

    Caro Dio, quando nelle preghiere ti chiedevo di far morire quel pedofilo truccato, liftato,mentalmente disturbato e di colore indefinibile, non intendevo Michael Jackson.

  5. #5
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Solitamente questo genere di estensioni non viene inclusa in PECL se non sono stabili (anche se taggate beta)

    Questa presentazione potrebbe esserti di aiuto:
    http://www.slideshare.net/nixnutz/lo...-php-and-mysql

    Domani quando torno in ufficio chiedo delucidazione al guru :-)

    Comunque provare non ti costa nulla, installalo sui server di test e fai un po' di load testing e vedi come reagisce il tutto.

  6. #6
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Dimenticato anche questo link:
    http://www.slideshare.net/nixnutz/th...lancing-plugin

    Sono slide informative ma dovrebbe darti comunque un miglior understanding

  7. #7
    Utente bannato L'avatar di Jaynias
    Registrato dal
    Apr 2012
    Messaggi
    4
    La soluzione più semplice, ma anche meno adatta, che mi viene in mente assunto che i web server siano già in balance tra di loro è che un web server scriva diretto su di un DB e l'altro di web server su di un altro DB. Rimane il problema del terzo web server ovviamente.[ima.info/g.gif[/img]

  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Uhm......

    Ma che razza di aarchitettura hai tra le macchine ?
    Pare quasi un raid 1....

    pensa bene prima come devi gestire le cose, il fatto si avere un master server serve per gestire gli slave, ossia il master deve sempre poter gestire dove indirizzare le requests in base ai carichi di lavoro o al fatto che un nodo della tua architettura distribuita sia "down" ...

    I database come sono messi in mirror ?
    Ci sono molti dubbi ....

  9. #9
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Che bello ho preso dentro un altro bug :-) Jaynias ha postato na roba pari pari alla mia :-)

    @Virus: che problema c'è nella sua architettura? Ha un cluster di database MySQL quindi devo per forza essere master/master non ci trovo niente di strano.

    @miki: I miei guru di riferimento sono latitanti... prolungate Easter holidays I guess.... ad ogni modo pare che il plugin sia production ready ora

    http://blog.ulf-wendel.de/2011/112-s...lugin-for-php/

    Fammi sapere, intanto, sto sul chi vive se qualcuno dei miei riferimenti si fa vivo

  10. #10
    Utente di HTML.it L'avatar di miki.
    Registrato dal
    Oct 2004
    Messaggi
    1,927
    Originariamente inviato da Virus_101
    Uhm......

    Ma che razza di aarchitettura hai tra le macchine ?
    Pare quasi un raid 1....

    pensa bene prima come devi gestire le cose, il fatto si avere un master server serve per gestire gli slave, ossia il master deve sempre poter gestire dove indirizzare le requests in base ai carichi di lavoro o al fatto che un nodo della tua architettura distribuita sia "down" ...

    I database come sono messi in mirror ?
    Ci sono molti dubbi ....
    e' Mysql Cluster (http://www.mysql.com/products/cluster/) quindi minimo son 2 servers mysql (+2 data node) ma possono essere anche di piu'.
    In piu' il master non gestisce niente in mysql, l'unica cosa che fa il master e' di permettere accesso in scrittura e lettera, mentre gli slave sono usati solo in lettura in quanto replicano dal master, almeno che non sia una configurazione master-master con replicazione circolare, ma comunque non e' il mio caso. Ma anche nel caso di un master + multipli slave, il load balancer lo devi mettere te, altrimenti l'applicazione usera' sempre il db che gli definisci te durante la connessione. Se un master va giu', la tua applicazione in php va giu', almeno che tu non metta qualcosa in mezzo (come descritto nei vari punti del mio primo post).
    Si usano i master-master (e principalmente mysql cluster) in caso si voglia aumentare la capacita' di carico di un database, e la possibilita' di scale out senza cambiare nessuna impostazione nell'applicazione.

    @Jaynias -> no perche' come ho gia' detto, se un db va giu', allora va giu' anche il webserver connesso a quel singolo db, in piu' i due db non sarebbero sincronizzati.

    @_debo -> grazie, comunque ho provato a fare una semplice installazione da pecl ma mi da un errore nel md5check. Quando ho un po' piu' di tempo provo a risolvere quel problema.
    Il plugin 1.1 pare che non supporti il load balancer con master-master, solo dal 1.2 hanno aggiunto quella funzione.
    Comunque guardo di fare delle prove prima di usarlo in produzione (anche se e' veramente difficile fare questo tipo di prove per vedere l'affidabilita' in ambiente di test)
    You cannot discover new oceans unless you have the courage to lose sight of the shore

    Caro Dio, quando nelle preghiere ti chiedevo di far morire quel pedofilo truccato, liftato,mentalmente disturbato e di colore indefinibile, non intendevo Michael Jackson.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.