Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rica mourao

Balanceamento de carga utilizando PHP e MySQL

Recommended Posts

Olá pessoal bom dia,

 

Estou desenvolvendo uma aplicação para um projeto da faculdade no qual preciso fazer um balanceamento de carga.

 

Abaixo irei detalhar o projeto:

 

1) Contamos com 3 servidores:

 

a)Servidor Alice responsável por hospedar a aplicação php;

 

b)Servidor Bob responsável por hospedar o banco de dados Mysql;

 

c)Servidor Celine, responsável por hospedar a aplicação php.

 

O servidor Alice e Celine deverão balancear a carga ao atender as requisições dos usuários. Isso é, a cada requsição um servidor irá responder ao usuário.

 

Separei um servidor para banco de dados com objetivo de criar consistência (servidor Bob), pois quando os servidores Alice e Celine forem manipular dados dos usuários, irão armazená-los em um único lugar.

 

Minha grande dúvida é como implementar isso na prática usando php?

 

Como utilizar o mesmo banco de dados em ambas aplicações em duas máquinas diferentes?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas a questão é como conectar (chamar o banco de dados) que está no servidor 10.0.0.3 por exemplo.

 

Se você já sabe, inclusive o IP, não tem segredo.

 

$conn = new PDO('mysql:host=10.0.0.3', 'root', '');

 

O código acima é válido tanto para Alice como para Celine.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal tentei usar a seguinte variavel para conexão:

 

$linkID = @mysql_connect("10.0.0.3","root","")

or die("Could not connect to MySQL server");

@mysql_select_db("teste") or die("Could not select database");

 

tive a seguinte resposta:

 

 

Warning: mysqli::connect() [function.mysqli-connect]: (00000/1130): Host 'PC01' is not allowed to connect to this MySQL server in D:\wamp\www\teste.php on line 5

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal tentei usar a seguinte variavel para conexão:

 

$linkID = @mysql_connect("10.0.0.3","root","")

or die("Could not connect to MySQL server");

@mysql_select_db("teste") or die("Could not select database");

 

tive a seguinte resposta:

 

 

Warning: mysqli::connect() [function.mysqli-connect]: (00000/1130): Host 'PC01' is not allowed to connect to this MySQL server in D:\wamp\www\teste.php on line 5

 

Localize o arquivo de configurações my.cnf no servidor mysql

 

Comente a linha

skip-networking

 

Adicione a seguinte linha, abaixo de [mysql

bind-address=10.0.0.3

 

Crie um usuário root com acesso remoto

CREATE USER 'root'@'%';

 

Se preferir criar o usuário com senha

CREATE USER 'root'@'%' IDENTIFYED BY 'senha';

 

Torne o usuário um root de verdade

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

 

Atualize os privilégios

FLUSH PRIVILEGES;

 

Tudo deve estar OK agora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Evandro, estou fazendo testes com o servidor Wampserver para windows em duas vms.

 

Não encontrei esse arquivo my.cnf sabe me informar no wamp onde localizá-lo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Evandro, estou fazendo testes com o servidor Wampserver para windows em duas vms.

 

Não encontrei esse arquivo my.cnf sabe me informar no wamp onde localizá-lo?

 

Se o servidor for Windows e você utilizou o Instalador do MySQL, estará em "arquivos de programas/program files"\mysql(server)

 

Se o servidor for Linux e você instalou pelos pacotes ou repositório oficial, há grandes chances de estar em /etc

 

Se você compilou no Windows e não mexeu com my.cnf, estará no diretório dos sources. Copie-o para \Windows

 

Se você compilou no Linux, copie para /etc

 

Não esqueça de reiniciar o servidor MySQL e verificar nos logs por possíveis erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,

 

Muito bom agora ta funcionando!.

 

você saberia me informar como fazer replicação de sessão em outro servidor caso o primeiro de problema?

 

Usuario logou no sistema na maquina A porem a Maquina A morreu, proximas requisições vão pra máquina B (que já possui usuário autenticado, pois sua sessão lá está ativa).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,

 

Muito bom agora ta funcionando!.

 

você saberia me informar como fazer replicação de sessão em outro servidor caso o primeiro de problema?

 

Usuario logou no sistema na maquina A porem a Maquina A morreu, proximas requisições vão pra máquina B (que já possui usuário autenticado, pois sua sessão lá está ativa).

 

Já que o servidor de banco de dados será compartilhado, sugiro que salve as sessões lá.

http://br2.php.net/manual/pt_BR/function.session-set-save-handler.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.