balanceo

tengo ya funcionando mi socket java pero me gustaria hacer una especie de balanceo del lado del servidor.
que no se los de estas ip se vayan al socket que esta corriendo por el puerto 7778 y los de este rango se vayan al socket corriendo en el 7779.

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

para qué?

Solamente cambio de puerto? O sea vas a tener dos instancias de tu app en el mismo server? y eso de qué sirve? Balancear cargas es útil sólo cuando tienes varias instancias de tu app funcionando en distintos equipos.

ok perfecto

no se como hacerlo si digamos si un equipo llego a 500 usuarios se conecte a otro equipo????
o por rango de ip de tal rango vayan a equipo 1 y los de otro rango vayan a equipo 2

Imagen de ezamudio

hay varias maneras

Puedes hacer que cada cliente tenga una lista de los servers disponibles y que intenten conectarse en ese orden. Si el server 1 les contesta que está saturado, se conectan al 2 y así sucesivamente. La bronca es que si agregas más servers, tienes que actualizar esa lista en los clientes.

Otra manera es que los clientes siempre hagan una conexión inicial a una app separada que simplemente les dice a qué server conectarse. Esa app puede monitorear todas las instancias de tu app para determinar cuál es la que tiene menos carga y mandar a cada nuevo cliente ahí (eso lo hace cada que un nuevo cliente se quiere conectar). O simplemente por round-robin: cada cliente que se conecte lo manda a un server distinto y así todos tienen la misma carga. La bronca de esto es que si tu app de balanceo de cargas se muere, ya nadie se puede conectar a ningún lado.

Otra manera es tipo proxy, todos los clientes se conectan a un mismo punto que es una app que simplemente cada que recibe una conexión de cliente, se conecta a uno de los servers disponibles y sirve como puente entre el cliente y ese servidor. Una especie de gateway. Muy similar a lo anterior pero en vez de que simplemente les diga a dónde conectarse, les acepta la conexión y a su vez se conecta a un server. Tiene la misma bronca de la opción anterior. Pero esto último ya hay software que lo hace y por lo tanto no necesitas hacerlo tú.

genial el comentario

estuvo genial el comentario y me parecio mas cool la ultima opcion ya hay software que lo hace, mi socket de java se conecta a ese software y el gestiona el balanceo??. como se llama el app???

Imagen de ezamudio

Apache

El apache httpd tiene un módulo para hacer balanceo de cargas. Si no usas http pues búscale... 30s en google me llevaron a esta solución, que puede o no servirte.