[GeoServer] Cluster / Extention pour synchronisation du datadir

7 views
Skip to first unread message

Julien Sabatier

unread,
Aug 10, 2022, 5:04:25 AM8/10/22
to georchestra-dev
J'ai voulu (re)mettre en place du load balacing sur notre production.

Pour cela, j'utilise un GS maitre sur lequel on accède à l'interface graphique et gère la conf, et des GS slaves qui vont gérer les appels vers les services OGC.

Actuellement, la doc officielle propose l'utilisation sur debian d'incrond combiné à un script python.

J'ai voulu simplifier ça en developpant une extention GS qui utiliserait uniquement JAVA et ne ferait pas de requête réseau. Deplus cela simplifie la mise en place, car il suffit de deposer le JAR dans le WEB-INF/lib des GS slaves.


Actuellement j'ai généré le JAR pour GS 2.20.4, et je l'ai mis en place sur notre prod.
Ca semble bien fonctionner, les GS se synchronisent bien.

Si besoin, il est assez simple de générer le JAR pour d'autres versions de GS.

Je suis preneur de vos avis et retours.

Julien Sabatier

unread,
Aug 10, 2022, 6:05:42 AM8/10/22
to georchestra-dev
Bon, j'ai été un peu vite, il semble que l'API WatchService ne gère pas le NFS... 

Je vais essayer de voir du côté de Apache Commons IO Monitor Library qui semble se baser sur la date de dernière modif au lieu de inotify

Julien Sabatier

unread,
Aug 10, 2022, 7:51:57 AM8/10/22
to georchestra-dev
C'est fixé avec l'utilisation de l'Apache Commons IO library, le code est encore plus simple et ça gère bien le NFS (verification des changements de timestamp sur le global.xml).

Olivier Guyot

unread,
Aug 11, 2022, 3:13:42 AM8/11/22
to georche...@googlegroups.com
Bonjour,

C'est un besoin partagé par de nombreux utilisateurs, et il y a probablement beaucoup de choses à dire sur le sujet. A Camptocamp nous avons maintenant tendance à privilégier l'utilisation de geoserver-cloud, dont l'une des plus values importantes est justement un système de propagation des modification vers des "slaves". Il y a notamment du travail en cours pour garantir l'intégrité des configurations entre les différents nœuds (je ne sais pas exactement où ça en est). Gs-cloud est notamment bien adapté pour une utilisation avec NFS, puisque chaque nœud va pouvoir accéder en lecture concurrente au même datadir sur le disque.

Cela dit cette solution est compliquée à mettre en œuvre hors docker, et vient vraiment avec une philosophie "cloud" qui ne sera peut-être pas adaptée à tout le monde.

Votre solution semble plus simple et adaptée pour un déploiement "classique" de GS. Il existe également l'extension jms-cluster (cf https://docs.geoserver.org/stable/en/user/community/jms-cluster/index.html) qui nécessite un déploiement d'ActiveMQ en parallèle; je n'ai jamais utilisé cette extension, donc je ne sais pas si elle est encore maintenue/fonctionnelle sur les dernières versions de GS.

Merci du partage !
--
camptocamp
INNOVATIVE SOLUTIONS
BY OPEN SOURCE EXPERTS

Olivier Guyot
Geospatial Developer


--
--
projet: http://www.georchestra.org/

---
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "georchestra-dev".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse georchestra-d...@googlegroups.com.
Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msgid/georchestra-dev/300da10b-0831-4410-ae44-cfa42bc82b86n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages