Cela fait pas mal d'années que je cherche un serveur web à embarquer dans mes applications à destination d'une JRE (Java Runtime Environment) et qui soit :
- Léger, quelques Ko maximum.
- Rapide à démarrer, quelques millisecondes maximum.
- Perfomant, qui encaisse une charge de plusieurs dizaines de milliers de requêtes par secondes sur mon core I5.
- Asynchrone, pour tirer partie du multithread.
- Compilable nativement, via Kotlin Native ou GraalVM.
- Ayant une syntaxe avec et surtout sans annotations, car la réflexion du code rend compliqué la compilation native.
- Libre, gratuit et interropérable.
- Présent dans le répo Maven Central.
- Modulaire, si j'ai besoin du routing alors je ne veux embarquer que les jars dédiés au routing.
Jooby répond à toutes ces conditions. Donc après avoir utilisé Glassfish (outch), Tomcat, Websphere (hur), Jonas (damned), Weblogic (hur again), Jetty, Sparkjava, Undertow, Javalin, Rapidoid et dernièrement Netty, je pense que je vais migrer vers Jooby qui en plus a de meilleures performances que les autres (d'un facteur 2 par rapport à son meilleur challenger, il est même au niveau des serveurs à destination du C++).
Il m'était arrivé une chose similaire dans une Peugeot 207 il y a 8-10 ans ! J'étais en voiture avec Roudoudoutte et nous partions en vacances. Cela faisait quelques heures qu'elle roulait et elle m'avait passé le volant. Le régulateur de vitesse était fixé à 70 Km/h et nous étions arrêtées en aglo pour le changement sur une place de stationnement, le long d'un trottoir.
Là, grosse trouille puisque au moment où je commence reprendre le véhicule et à accélérer, la voiture se met à monter toute seule très vite et très fort dans les tours, alors que je n’accélère plus hein, ceci pour rejoindre les 70 Km/h. J'ai beau désactiver le régulateur, rien n'y fait. C'est après avoir écrasé pour la troisième fois la pédale de frein que tout le système cessera de s’emballer.
L'idée de Daniel de débrayer n'avait pas fonctionnée... Bah oui, les Peugeots savent changer les vitesses toutes seules...
Fabriquer un micro-service à partir d'un Jetty embarqué et sélectionner les modules de Jetty pour que son micro-service soit modulaire.
Enjoy :D
Charger un Tomcat embarqué + la création de servlet codée en Java (donc sans config XML). Pas mal