En un articulo anterior hablamos sobre CloudKarafka para trabajar con Tópicos, publicadores y subscriptores. Pero, si tu tienes cuenta en Google Cloud, debes saber que puedes usar PubSub para implementar mensajería basada en eventos.
¿Qué es PubSub?
GCP Pub/Sub es un servicio de mensajería real-time completamente administrable que nos permite enviar y recibir mensajes entre aplicaciones independientes. ¿Y cómo funciona esto, o "como se come"?:
- Tú publicas un mensaje a un tópico,
- Una aplicación se suscribe a la subscription de dicho tópico para recibir los mensajes que se publican.
- La aplicación al recibir el mensaje avisa que el mensaje ha sido recibido y el mensaje es eliminado de la cola de mensajes.
- Si el aviso no es recibido, GCP reenviará el mensaje con un tiempo de delay especificado. De esta manera, la entrega del mensaje es garantizado.
¿Por qué GCP Pub/Sub?
Cuando hay dos micro servicios o aplicaciones que necesitan comunicarse entre ellas para completar una tarea. Tu piensas en resolver esto con:
- Request HTTP
- GRPC
El problema con HTTP es que hay chance de fallas y por eso el desarrollador implementa lógicas de reintento. HTTP es también "demasiado" si tienes que intercambiar cantidades muy pequeñas de datos. Recordemos también qué hay que proporcionar autenticación, aunque ambos micro servicios pertenecieran a la misma aplicación.
Y con GRPC habría que aprender su sintaxis y metodologías, así como escribir la lógica de reintento si falla la entrega del mensaje.
Pero, ¿Qué resuelve GCP Pub/sub?
- Nos da mecanismo de reintento
- Es super ligero y super rápido
- Configuración mínima
- Es administrado por google, así que ni preocuparse del mantenimiento
A continuación los pasos para su utilización:
Paso 1: Obtener archivo de Recurso
Para poder utilizar los tópicos y subscripciones se necesita generar un service-account.json desde la consola de Google. Yo te muestro como hacerlo de forma sencilla:
Escoger la opción JSON y obtener el archivo JSON que tendrá por defecto el nombre del proyecto en GCP. Renombrarlo a service-account.json.
Este archivo lo vamos a usar mas adelante cuando generemos los proyectos.
Paso 2: Crear el Pub/Sub, Tópico y Subscripción
Primero ubica el Pub/Sub en la barra de servicios a la izquierda de la página de Google Cloud:
Luego crea el tópico testTopic:
Luego creamos la suscripción:
Y mantengo los datos por defecto:
Y listo. Ahora pasamos a crear los proyectos para enviar y recibir mensajes usando Pub/Sub.
Paso 3: Vídeo tutorial
Explico la implementación con un vídeo paso a paso.
El código fuente lo puedes bajar desde GitHub aquí.
Enjoy!
Joe