Je réfléchis au développement d'une application Web avec Spring et OSGi. Il semble qu'ils s'emboîtent bien. Quelles sont les options pour le clustering et l'équilibrage de charge d'une telle application et quels sont les avantages et les inconvénients de chacune d'elles?Comment regrouper et équilibrer la charge d'une application Spring + OSGi
Répondre
Ni OSGi ni Spring n'ont été créés pour résoudre des problèmes tels que la haute disponibilité, la mise en cluster ou l'équilibrage de charge. Vous pouvez, bien sûr, construire un système en cluster et à charge équilibrée utilisant Spring et OSGi, mais vous aurez probablement besoin d'autre chose, comme un moyen de détecter et de communiquer les défaillances des nœuds et les niveaux de charge.
Étant donné que vous créez une application Web, vous utiliserez probablement l'un des nombreux serveurs d'applications. De bons produits AS fournissent le clustering pour vous. Certains fournissent également l'équilibrage de charge. Vous pouvez également réaliser l'équilibrage de charge via une configuration entièrement indépendante, en utilisant Apache par exemple pour afficher vos principaux serveurs d'applications.
Si vous êtes vraiment déterminé à créer votre propre solution, j'ai vu JGroups être utilisé dans plusieurs produits pour fournir l'infrastructure nécessaire pour construire une solution de clustering et/ou d'équilibrage de charge. Certains des produits de mise en cache en mémoire distribués utilisent JGroups, par exemple. En ce qui concerne les caches distribués, des produits tels que Ehcache peuvent aider à résoudre les problèmes de mise à l'échelle et d'équilibrage de charge.