Couchbase es genial como fuente para Apache Kafka usando el conector DCP.
Sin embargo, también es estupendo como punto final para digerir datos, ya que es rápido, primero memoria y almacenamiento fiable.

En esta entrada del blog te mostraré cómo construir una aplicación Java simple para un productor y un consumidor que guardan los mensajes publicados de Kafka en Couchbase.

Asumo aquí, que ya tienes un cluster Kafka (incluso si es un cluster de un solo nodo). Si no es así, intenta seguir esa guía de instalación.

Este entorno de blog tiene 4 partes:

  1. Productor de Kafka
  2. Cola de Apache Kafka
  3. Consumidor Kafka
  4. Servidor Couchbase

Productor

Necesitamos el productor para enviar mensajes a nuestra cola.

En la cola, esos mensajes están siendo digeridos y cada aplicación que se suscribió al tema - puede leer esos mensajes.

La fuente de nuestros mensajes será un archivo JSON ficticio que he creado usando Mockaroo, que dividiremos y enviaremos a la cola.

Nuestros datos JSON de muestra tienen un aspecto similar a:

El código del productor:

Output from the Kafka producer app

Salida de la aplicación productora de Kafka

Consumidores

Esta es una simple, muy directa, solo obtén los mensajes de la cola, y usa el Couchbase Java SDK para insertar documentos en Couchbase. Por simplicidad, usaré el sync java SDK, pero usar el async es totalmente posible e incluso recomendable.

Output from the Consumer app

Salida de la consola de nuestro consumidor Kafka

Servidor Couchbase

Ahora podemos ver el resultado en el servidor Couchbase.

Mira el bucket kafkaExample - Lleno con 1000 documentos.

Cubos Couchbase

Cada documento tiene un aspecto similar:

Documento de muestra

Solución sencilla en 3 partes.

Tenga en cuenta que en un entorno de producción, Producer, Consumer, Kafka o Couchbase estarán en una o más máquinas cada uno.

Código completo (incluidas las dependencias de Maven) en GitHub.

Roi.

Autor

Publicado por Roi Katz, Arquitecto de soluciones, Couchbase

Roi es Couchbase Solution Architect, desarrollador de software y arquitecto con más de 10 años de amplia experiencia en la industria. Ha sido formador y autor de cursos con especialización en Sistemas Big Data, Bases de Datos NoSQL, Couchbase, Arquitectura Distribuida y Cloud Computing.

Dejar una respuesta