Enmilocalfunciona

Thoughts, stories and ideas.

MicroServicios y Micronaut qué tal?

Publicado por Alfredo Rondón el

Arquitectura de SolucionesMicroserviciosMicronaut

En el siguiente artículo se describirá uno de los frameworks comúnmente usados para diseñar e implementar microservicios, por su rapidez a la hora de arrancar el entorno y buena adaptación para el alto desacoplamiento de las funcionalidades según cada negocio donde se desee aplicar.

¿Qué es Micronaut?

Es un framework especializado para el desarrollo de microservicios como otros, entre tanto cuenta con diferentes anotaciones parecidas a las que componen springboot pero, es más ligero, modular, y fácil de testear.

Es soportado por lenguajes como Java, Kotlin y Grooovy, en el siguiente enlace podremos encontrar la documentación muy útil. https://docs.micronaut.io/latest/guide/index.html

¿Por qué Micronaut?

Una de las grandes razones de su uso actual es por lo rápido en tiempo de arranque de una aplicación, debido a que el consumo de memoria no crece linealmente con el número de líneas de código ni la inyección de dependencias, AOP entre otros, sino que se realiza en tiempo de compilación y no en tiempo de ejecución.

Adicionalmente cuenta con la generación de JAR de muy pequeño tamaño inspirado en el framework Grails, y como no podía ser de otra manera soporta GORM el ORM de Grails que proporciona un conjunto de APISs para tener de forma sencilla la interacción con base de datos SQL y NoSql.

Este articulo está dividido en 5 partes:

1. Introducción
2. Stack Tecnológico
3. Ejemplo practico
4. Ventajas y desventajas
5. Conclusiones
6. Bibliografia y referencias

1. Introducción

En este artículo se quiere explicar de una manera rápida y sencilla el uso de Micronaut para el desarrollo de microServicios.

2. Stack Tecnológico

 - Windows 10

 -   Eclipse IDE for Java Developers (Versión: 2022-06 (4.24.0)

 - Micronaut (Versión: 3.6.3)

 - Maven (Versión 3.8.4)

 -   JavaSE 1.8

3. Ejemplo Práctico

a.Abrimos el eclipse
b.Creamos un proyecto maven, en nuestro caso se llama micronaut-java-cli
c. Añadimos las dependencias de maven para micronaut
d.Creamos un controlador para acceder, en nuestro caso se llama MessageControler
e.Verificamos la clase para el arranque de la aplicación
f. Configuramos el arranque de la aplicación
g. Hacemos un mvn clean install del proyecto
g. Arrancamos la aplicación que por defecto arrancará en el puerto 8080
h. Abrimos un navegador y escribimos : localhost:8080/hello y veremos el mensaje :"Hello World"

4. Ventajas y Desventajas

4.1 Ventajas
a.Rápido al arrancar.
b.Ejecuta todo el código en tiempo de compilación y no de ejecución.
c.Arma los artefactos más compactos y de menor peso.
d.Se integra de manera sencilla con BD Sql y NoSql.
e.Fácil testeo.
f.Bajo consumo de memoria.
g.Es capaz de soportar servicios reactivos y no bloqueantes.

4.2 Desventajas:
a.No existe mucha documentación ni cursos disponibles.
b.La comunidad de soporte es limitada.
c.Curva de aprendizaje moderada.

5. Conclusiones

Tras la primera prueba creando un proyecto básico he llegado a la conclusión que el uso es realmente sencillo cómodo y práctico para todos aquellos desarrolladores que previamente han trabajado con anotaciones en otros frameworks para microservicios, notando claramente su velocidad de arranque y poco consumo de memoria que sin duda es el "aleluya" de todos los desarrolladores de software hoy en día.

Así que os invito a todos a hacer sus primeras aplicaciones basadas en microservicios con Micronaut.

6. Bibliografías y referencias

Micronaut
micronaut-examples/pom.xml at master · micronaut-projects/micronaut-examples
Example Projects Using Micronaut. Contribute to micronaut-projects/micronaut-examples development by creating an account on GitHub.
Creating your first Micronaut application
Learn how to create a Hello World Micronaut application with a controller and a functional test.

https://www.baeldung.com/micronaut-vs-spring-boot

Autor

Alfredo Rondón

Arquitecto de soluciones en knowmad mood, apasionado de las nuevas tecnologías y en ayudar a todas las personas de nuestra área en aclarar todas las dudas de una manera rápida y sencilla.