Équilibreur de charge, sockets et java


J'ai un projet sur lequel travailler et j'ai besoin de créer des applications client - serveur où je peux envoyer des messages et tout, en Java. L'un des objectifs du projet est de gérer le basculement. Lorsqu'un client se connecte à un serveur et le serveur meurt, il se connecte automatiquement au serveur de sauvegarde. Ce que je veux faire n'est pas requis, mais je veux implémenter un équilibreur de charge afin que plusieurs clients soient connectés au serveur préféré.

La connexion entre un client et le serveur doit être avec des sockets TCP.

Ceci est un schéma de l'architecture réseau: entrez la description de l'image ici

  1. Le client se connecte à l'équilibreur de charge (udp ou tcp, je ne connais pas le meilleur pour cette situation).

  2. L'équilibreur de charge décide du serveur auquel le client doit se connecter (le plus vide)

  3. Le client crée une connexion TCP avec le serveur spécifié

Ma question est la suivante:

Comment l'équilibreur de charge devrait-il fonctionner pour obtenir un client pour se connecter à un serveur spécifique? Envoyer des informations du serveur (ip, port) au client et les clients créent un autre socket avec la nouvelle ip? (ligne bleue).

Ou existe-t-il un moyen pour l'équilibreur de charge de connecter ces deux points de terminaison (serveur #1 client #1), sans avoir à envoyer d'informations au client?

PS: Je vous le demande car il semble inutile que chaque client doive créer 2 sockets pour se connecter au serveur (première ligne noire de socket, deuxième socket ligne bleue)

Author: andrepcg, 2013-10-02

1 answers

Je pense qu'après que le client envoie des informations à l'équilibreur de charge,il est préférable que l'équilibreur de charge envoie ces informations au serveur qu'il décide au lieu de renvoyer quelque chose au client et que le client se connecte à nouveau au serveur

 1
Author: Kaushik Sivakumar, 2013-10-02 14:47:19