Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Variable global para el servidor

Estas en el tema de Variable global para el servidor en el foro de PHP en Foros del Web. Estimados: Se me ocurrió una idea para mejorar la eficiencia de un servidor repartiendo las consultas en 2 servidores, para esto tengo pensado enviar las ...
  #1 (permalink)  
Antiguo 03/06/2014, 14:43
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Variable global para el servidor

Estimados:

Se me ocurrió una idea para mejorar la eficiencia de un servidor repartiendo las consultas en 2 servidores, para esto tengo pensado enviar las consultas "alternadamente", o sea, cuando un cliente consulte será redireccionado al servidor 1, cuando otra persona consulte será enviado al servidor 2, si luego otra persona consulta será nuevamente enviado al servidor 1 y así sucesivamente.

Para esto lo que necesito es crear una variable que se mantenga entre los clientes, algo que podría lograr con una base de datos pero no es la idea ya que el objetivo de todo esto es que la conexión a la BD sea alternada.

(Estoy usando un cluster mysql con 6 nodos)

Una opción que pensé es registrar la variable en un archivo, pero no me parece muy eficiente.

Entonces, hay alguna forma de guardar una variable en el servidor? algo así como una sesión o una cookie pero que se guarde en el servidor y pueda ser consultada por diferentes clientes?

Espero que se entienda y gracias por adelantado :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #2 (permalink)  
Antiguo 03/06/2014, 14:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Variable global para el servidor

Es decir, ¿quieres resolver un problema de MySQL con código PHP?

Vaya pérdida de tiempo, lo ideal sería que utilices una base de datos distribuida, y MySQL lo hace bien así que sólo te resta consultar la documentación.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 03/06/2014, 14:57
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Variable global para el servidor

no, es un problema de servidores más que de MySQL, imagina que no dije nada relacionado con base de datos y no tengo base de datos.

como puedo crear una variable que pueda ser accedida por cualquier cliente?
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 03/06/2014, 15:11
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Variable global para el servidor

Cita:
Iniciado por stramin Ver Mensaje
como puedo crear una variable que pueda ser accedida por cualquier cliente?
Amigazo.....

Creo lo que quieres hacer es "balancear la carga de las consultas a la DB" o "load balancing" ... deberia investigar por esos terminos

http://www.php.net/manual/en/mysqlnd...dbalancing.php
__________________
Salu2!
  #5 (permalink)  
Antiguo 03/06/2014, 15:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Variable global para el servidor

Cita:
Iniciado por stramin Ver Mensaje
[...] como puedo crear una variable que pueda ser accedida por cualquier cliente?
1. ¿Con cliente te refieres al navegador?
2. ¿Qué tipo de variable?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 03/06/2014, 15:14
 
Fecha de Ingreso: abril-2014
Ubicación: San Cristóbal
Mensajes: 18
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Variable global para el servidor

con php no puedes hacer lo que quieres, porque cada cliente tiene una sesion diferente, por lo tanto no puedes crear una variable global para todos los clientes
  #7 (permalink)  
Antiguo 03/06/2014, 15:17
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Variable global para el servidor

Cita:
Iniciado por m_acero_n Ver Mensaje
con php no puedes hacer lo que quieres, porque cada cliente tiene una sesion diferente, por lo tanto no puedes crear una variable global para todos los clientes
Exacto, PHP no es JAVA
__________________
Salu2!
  #8 (permalink)  
Antiguo 03/06/2014, 15:30
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Variable global para el servidor

Excelente Italico76, ya me has salvado 3 veces en 2 semanas!

Usaré eso para conseguir mi objetivo.

de todos modos me gustaría solo por saber si existe alguna forma de hacer lo de esta "variable" accesible por cualquier cliente.

lo que pretendo almacenar es solo un número (un booleano en realidad) en el servidor y que sea accesible por cualquier consulta de parte de un cliente, el efecto sería el mismo que almacenar el dato en una BD, pero en este caso el dato no es necesario que sea registrado por mucho tiempo, por lo que pienso que podría almacenarse en memoria.

Respondiendo a las preguntas de pateketrueke:

1. ¿Con cliente te refieres al navegador?
Me refiero a cualquier petición que entre al servidor

2. ¿Qué tipo de variable?
es un número entero.

---- EDIT -----

Lástima que no se pueda, supongo que la única opción será escribir en un archivo y leerlo cada vez.

Gracias por sus aportes!

---- EDIT -----

Tema solucionado :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Última edición por stramin; 03/06/2014 a las 15:33 Razón: nuevas respuestas!
  #9 (permalink)  
Antiguo 05/06/2014, 07:13
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Variable global para el servidor

Respuesta encontrada!

En stackoverflow han dado con la respuesta, se trata de variables "Shared Memory", o sea en memoria compartida:

http://www.php.net/manual/en/book.shmop.php
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #10 (permalink)  
Antiguo 05/06/2014, 07:42
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Variable global para el servidor

Cita:
Iniciado por stramin Ver Mensaje
Respuesta encontrada!

En stackoverflow han dado con la respuesta, se trata de variables "Shared Memory", o sea en memoria compartida:

http://www.php.net/manual/en/book.shmop.php
Creo que necesitas usar memcached: http://memcached.org/
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #11 (permalink)  
Antiguo 05/06/2014, 07:54
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Variable global para el servidor

Cierto, la mayor parte de las consultas pueden ser cacheadas igual que la mayor parte del HTML
__________________
Salu2!
  #12 (permalink)  
Antiguo 05/06/2014, 12:44
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: Variable global para el servidor

Gracias por sus respuestas, pero no busco almacenar datos, pondré un ejemplo a ver si se entiende:

- Supongamos que Italico76 entra a una página web, esto hace que una variable se inicie en 0 ($v=0)

- Luego, 2 horas después hhs entra también a la página, entonces el sistema lee la variable que esta en 0 y la sobreescribe con un 1 ($v=1)

- Luego 10 segundos pateketrueque entra también y como la variable ya es uno queda en 0 ($v=0)

- Luego Italico76 vuelve a entrar, la variable vuelve a quedar en 1 ($v=1)

...y así sucesivamente, por cada vez que se ejecute el código la variable se irá alternando entre 0 y 1 sin importar desde donde se haya ejecutado.

PHP tiene control de casi todo el SW, debe haber una forma de hacer esto sin BD y sin archivos, guardando la variable en memoria pero que sea común para todos los usuarios :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #13 (permalink)  
Antiguo 05/06/2014, 12:59
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Variable global para el servidor

@stramin : amigo sino perdemos de vista tu motivación de evitar sobrecarga en la DB por medio de balance de carga u otra metodologia ... creo deberias considerar lo que te dice @hhs de usar una cache.

Si resuelves tu problema con una cache... para que mas ?
__________________
Salu2!

Etiquetas: global, mysql, servidor, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:08.