Un marco de microservicios rápido, ligero y nativo de la nube.
Desbordamiento de pila | Grupo de Google | Chat Gitter | Subreddit | Canal de Youtube | Documentación | Guía de contribuciones |
Ligero significa ligero, ultrarrápido y arroja luz sobre cómo programar con Java SE moderno para una implementación nativa de la nube.
Había estado trabajando en las plataformas Java EE desde principios de 2000 y sufrí problemas de rendimiento y productividad. En 2014, me di cuenta de que la industria de TI estaba pasando de lo monolítico a los microservicios y de los centros de datos locales a las nubes públicas.
Para reducir el costo de producción de mis aplicaciones, necesito encontrar una plataforma liviana que ocupe poco espacio en memoria, alto rendimiento y baja latencia en Java. Java EE y Spring/Spring Boot son demasiado pesados para ser considerados. Otras plataformas Java ligeras tienen diferentes problemas en cuanto a la separación entre la lógica empresarial y las preocupaciones técnicas transversales. Además, no son nativos de la nube ni están diseñados para contenedor/nube.
Sin encontrar nada adecuado, comencé a construir mi plataforma de código abierto light-4j sobre el núcleo HTTP de Undertow siguiendo los principios. Debido a que mi enfoque es muy radical y va en contra de los productos de las grandes corporaciones, algunas entidades en línea y fuera de línea me han atacado constantemente. Sin embargo, estoy muy convencido de que mi enfoque es la dirección futura y dedico todos mis esfuerzos a continuar el desarrollo. Hoy en día, muchas empresas utilizan light-4j en producción y reciben comentarios muy positivos. Además, me anima a dedicarme al marco y ampliar la plataforma para construir un ecosistema.
Para los usuarios que se benefician de la plataforma, pueden convertirse en mis patrocinadores para que pueda poner todo mi esfuerzo en los proyectos de código abierto.
Es 44 veces más rápido que la plataforma de microservicios más popular, Spring Boot, Tomcat integrado y utiliza solo 1/5 de la memoria. A continuación se muestran los resultados de las pruebas comparativas con Spring Boot y otros marcos de microservicios. Aquí está la comparación de terceros con otros marcos web.
Diseñe la especificación OpenAPI y genere el servicio a partir de ella. La especificación también es parte del marco para impulsar la verificación de seguridad y solicitar validación en tiempo de ejecución.
Se generan resguardos de prueba unitaria/de extremo a extremo para permitir un enfoque basado en pruebas para un producto de calidad.
Depuración dentro de IDE como una aplicación independiente para una mejor productividad del desarrollador.
Los archivos de soporte Dockerfile y DevOps se generan para respaldar la dockerización y la integración continua en producción.
Todos los marcos de código abierto están construidos en Java y estamos trabajando internamente en el marco de Nodejs. En el futuro, es posible que también proporcionemos el marco Golang y todos compartan el mismo ecosistema y mercado.
Servidor OAuth2 para seguridad y Portal para monitoreo y gestión de producción. El portal es también un mercado para vincular clientes y servicios.
Hay dos formas de iniciar su proyecto:
Puede utilizar light-codegen para generar un proyecto de trabajo. Actualmente, es compatible con light-rest-4j, light-graphql-4j, light-hybrid-server-4j y light-hybrid-service-4j. Se acerca el generador de códigos de eventos de luz.
El proyecto light-codegen README.md describe cuatro formas de utilizar el generador con ejemplos.
La otra forma de comenzar su proyecto es copiar desde light-example-4j.
Puedes encontrar la descripción de estos ejemplos.
Además, hay algunos tutoriales.
Para ejecutar/depurar desde IDE, necesita configurar una aplicación Java con la clase principal "com.networknt.server.Server" y el directorio de trabajo es la carpeta de su proyecto. No hay ningún contenedor y usted está trabajando solo en una aplicación Java independiente.
cree una aplicación Java cuya clase principal sea com.networknt.server.Server y el directorio de trabajo sea la carpeta raíz de su proyecto. Puede depurar su servidor como una aplicación POJO.
mvn ejecutivo: ejecutivo
java -jar target/demo-0.1.0.jar
puedes usar Ctrl+C para cerrar el servidor pero para producción usa el siguiente comando
kill -s TERM <pid>
El servidor tiene un gancho de apagado y el comando anterior le permite limpiarse. Por ejemplo, complete las solicitudes en curso y cierre las conexiones de la base de datos, etc. Si se utiliza el registro y el descubrimiento de servicios, el servidor enviará un evento de apagado al registro de servicios y seguirá procesando las solicitudes durante 30 segundos hasta que todos los clientes actualicen su caché local antes de apagarse. .
Light-4j y todos los frameworks light-*-4j están disponibles bajo la licencia Apache 2.0. Consulte el archivo de LICENCIA para obtener más información.