Un framework de microservices rapide, léger et natif du cloud.
Débordement de pile | Groupe Google | Chat Gitter | Sous-répertoire | Chaîne Youtube | Documents | Guide des contributions |
Léger signifie léger, rapide comme l'éclair et mettant en lumière la façon de programmer avec Java SE moderne pour un déploiement cloud natif.
Je travaillais sur les plateformes Java EE depuis début 2000 et souffrais de problèmes de performances et de productivité. En 2014, j'ai réalisé que l'industrie informatique passait du monolithique aux microservices et des centres de données sur site aux cloud publics.
Pour réduire le coût de production de mes applications, je dois trouver une plate-forme légère dotée d'une faible empreinte mémoire, d'un débit élevé et d'une faible latence en Java. Java EE et Spring/Spring Boot sont trop lourds pour être pris en compte. Les autres plates-formes Java légères ont toutes des problèmes différents concernant la séparation entre la logique métier et les préoccupations techniques transversales. De plus, ils ne sont pas natifs du cloud ni conçus pour les conteneurs/cloud.
Sans rien trouver de convenable, j'ai commencé à construire ma plateforme open source light-4j au-dessus du noyau HTTP Undertow en suivant les principes. Parce que mon approche est très radicale et qu’elle s’oppose aux produits des grandes entreprises, j’ai été constamment attaqué par certaines entités en ligne et hors ligne. Cependant, je suis tellement convaincu que mon approche est la direction future et je consacre tous mes efforts à poursuivre le développement. Aujourd’hui, de nombreuses entreprises utilisent light-4j en production avec des retours très positifs. Cela m'encourage en outre à me consacrer au framework et à étendre la plateforme pour construire un écosystème.
Pour les utilisateurs bénéficiant de la plateforme, vous pouvez devenir sponsor pour moi afin que je puisse mettre tous mes efforts dans les projets open source.
Il est 44 fois plus rapide que la plate-forme de microservices la plus populaire Spring Boot intégrée à Tomcat et n'utilise que 1/5 de la mémoire. Voici les résultats de référence comparés à Spring Boot et à d’autres frameworks de microservices. Voici la comparaison tierce avec d’autres frameworks Web.
Concevez la spécification OpenAPI et générez le service à partir de celle-ci. La spécification fait également partie du cadre permettant de piloter la vérification de sécurité et la validation des demandes au moment de l'exécution.
Des talons de test unitaires/de bout en bout sont générés pour permettre une approche basée sur les tests pour un produit de qualité.
Débogage dans l'IDE, tout comme une application autonome pour une meilleure productivité des développeurs.
Les fichiers de support Dockerfile et DevOps sont générés pour prendre en charge la dockerisation et l'intégration continue à la production.
Tous les frameworks open source sont construits en Java et nous travaillons en interne sur le framework Nodejs. À l'avenir, nous pourrions également fournir le cadre Golang et tous partagent le même écosystème et le même marché.
Serveur OAuth2 pour la sécurité et portail pour la surveillance et la gestion de la production. Le portail est également une place de marché permettant de relier les clients et les services.
Il existe deux manières de démarrer votre projet :
Vous pouvez utiliser light-codegen pour générer un projet fonctionnel. Actuellement, il prend en charge light-rest-4j, light-graphql-4j, light-hybrid-server-4j et light-hybrid-service-4j. Le générateur de code d'événement lumineux arrive.
Le projet light-codegen README.md décrit quatre façons d'utiliser le générateur avec des exemples.
L'autre façon de démarrer votre projet est de copier depuis light-example-4j.
Vous pouvez retrouver la description de ces exemples
Il y a aussi quelques tutoriels
Pour exécuter/déboguer à partir de l'IDE, vous devez configurer une application Java avec la classe principale "com.networknt.server.Server" et le répertoire de travail est votre dossier de projet. Il n'y a pas de conteneur et vous travaillez uniquement sur une application Java autonome.
créez une application Java dont la classe principale est com.networknt.server.Server et le répertoire de travail est le dossier racine de votre projet. Vous pouvez déboguer votre serveur comme une application POJO.
mvn exécutable : exécutable
java -jar target/demo-0.1.0.jar
vous pouvez utiliser Ctrl+C pour tuer le serveur mais pour la production, utilisez la commande suivante
kill -s TERM <pid>
Le serveur dispose d'un hook d'arrêt et la commande ci-dessus lui permet de nettoyer. Par exemple, complétez les demandes en cours et fermez les connexions à la base de données, etc. Si le registre de services et la découverte sont utilisés, le serveur enverra un événement d'arrêt au registre de services et continuera à traiter les demandes pendant 30 secondes jusqu'à ce que tous les clients actualisent leur cache local avant de s'arrêter. .
Light-4j et tous les frameworks light-*-4j sont disponibles sous la licence Apache 2.0. Voir le fichier LICENSE pour plus d'informations.