Microservicios en Java con Spring Boot, Front-End y Back-End.
Aplicación de microservicios desarrollada en Java creada con Spring Framework que consta de front-end que consume el servicio de back-end. Esta primera entrega corre de modo local y de igual forma se ha instalado en una instancia de Google Cloud Plataform, la cual se modificará en las siguiente entrega para usar un servicio de base de datos MySQL.
A través de la integración posterior de Spring Cloud GCP adoptará algunas de las mejores prácticas para el seguimiento, la gestión de la configuración y la integración con otros servicios mediante patrones de integración.
Propiamente esta aplicación base se escalará como MySQL con Cloud SQL, servicios de canalización de mensajería como RabbitMQ con Pub/Sub, tiendas de rastreo distribuidas como Zipkin con Cloud Trace y servicios de servidor de configuración centralizados con Cloud Runtime Configuration API.
Finalmente, implementará componentes de la aplicación en App Engine y Kubernetes Engine, y mostraré cómo usar Cloud Trace para depurar y monitorear su aplicación cuando se implemente en esos servicios.
En GCP Training encontrará información y cursos relacionados con la implementación de microservicios en Google Cloud Platform, y otras materias relacionadas.
Repositorio
El código fuente de los servicios front-end y back-end lo encontrará en el siguiente repositorio que lo puede clonar en su computador local: https://github.com/DaveSV/Java-Microservices-with-Spring-Boot
git clone https://github.com/DaveSV/Java-Microservices-with-Spring-Boot.git
JVM
Deberá tener instalado Java SE 8 que es el entorno de desarrollo para crear aplicaciones utilizado en el desarrollo de estos microservicios.
Para su descarga y guias de instalación puede visitar el sitio oficial de Oracle.
Back-end
Para correr el servicio de back-end abra una consola en el siguiente directorio:
/guestbook-service
Ejecute el siguiente comando:
./mvnw -q spring-boot:run -Dserver.port=8081

Abra una nueva pestaña de consolal para probar la aplicación de back-end. Mientras la aplicación backend ( guestbook-service
) aún se está ejecutando, pruebe el servicio ejecutando el siguiente comando en la segunda consola:
curl http://localhost:8081/guestbookMessages
Haga uso del servicio posteando un nuevo mensaje:
curl -XPOST -H "content-type: application/json" \
-d '{"name": "Ray", "message": "Hello"}' \
http://localhost:8081/guestbookMessages

Luego, vuelva a solicitar el listado de mensajes:
curl http://localhost:8081/guestbookMessages
Tendrá una salida similar a esta:

Front-end
Para ejecutar la interfaz localmente, realice los siguientes pasos. Abra en una tercer consola en el siguiente directorio:
/guestbook-frontend
Para ejecutar la aplicación front-end, ejecute el siguiente comando:
./mvnw -q spring-boot:run
Tendrá una salida similar a esta:

Abra una ventana de su explorador y digite:
http://localhost:8080/
La aplicación web front-end se inicia en el puerto 8080.

Escriba su nombre y para Mensaje escriba un mensaje. Haga clic en Publicar para continuar. Los mensajes se enumeran debajo de la sección de entrada de mensajes.
Para comprobar el servicio de back-end, realice los siguientes pasos. En la consola donde esta consumiendo el servicio enumere todos los mensajes que agregó a través de una llamada a la guestbook-service
API de backend ejecutando de nuevo el siguiente comando:
curl -s http://localhost:8081/guestbookMessages
Puede usar la herramienta jq
para analizar el texto de retorno JSON.
jq es una herramienta de terminal multiplafatorma que funciona en Linux, macOS y Windows. La herramienta permite filtrar, extraer, buscar o modificar los datos dentro de un fichero JSON.
Si estás utilizando Ubuntu o alguna distribución basada en Debian, puedes instalar jq
con el siguiente comando: «sudo apt-get install jq».
En sistemas CentOS o RHEL, puedes instalar jq
con el siguiente comando: «sudo yum install jq».
Si estás en un sistema macOS con Homebrew instalado, puedes instalar jq
con el siguiente comando: «brew install jq».
Para Windows, puedes utilizar la versión precompilada de jq
. Descarga jq
desde el siguiente enlace: https://stedolan.github.io/jq/download/.
Una vez instalado jq ejecute el siguiente comando. Por ejemplo, el siguiente comando imprime solo los mensajes:
curl -s http://localhost:8081/guestbookMessages | jq -r '._embedded.guestbookMessages[] | {name: .name, message: .message}'
Tendrá una salida similar a esta:

Conclusión
La aplicación de demostración es una aplicación Java simple compuesta por un backend de microservicios y un frontend que lo consume. Se amplía esta sencilla aplicación en entregas posteriores para aprovechar varios servicios de Google Cloud. Eventualmente, se implementará paso a paso en la nube, utilizando tanto App Engine como Google Kubernetes Engine.