es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Enfoque de diseño para una aplicación consumidora de Kafka

Intentando analizar/reducir el enfoque de diseño.
El requisito es escuchar/suscribirse a mensajes de Kafka y luego procesar/actualizar mensajes y almacenarlos en una base de datos de Postgresql.

Tenemos una instancia de EC2 – servidor windows y estamos tratando de ver qué deberíamos usar para crear un consumidor de Kafka que pueda escuchar y procesar mensajes.

Considerando crear un servicio de Windows/.Net como consumidor de Kafka y procesar/almacenar mensajes en Postgresql.

O
¿Puede aconsejarme qué otra opción de diseño sería mejor utilizar junto con la instancia de EC2?

Dado que esta es una instancia de EC2, no estoy seguro si Lambda sería útil o si debería crear una aplicación independiente (preferiblemente utilizando la pila tecnológica .Net).

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Respuesta

    Según el requisito de escuchar y procesar mensajes de Kafka y luego almacenarlos en una base de datos PostgreSQL, existen algunas opciones de diseño a considerar.

    Opción 1: Servicio de Windows .Net/Worker Service

    Una opción es crear un Servicio de Windows .Net/Worker Service como consumidor de Kafka. Este servicio puede escuchar mensajes de Kafka y procesarlos utilizando la pila de tecnología .Net, y luego almacenar los datos en la base de datos PostgreSQL.

    Esta opción tiene la ventaja de utilizar una tecnología familiar y puede integrarse fácilmente en el paisaje de TI existente. Además, ofrece un alto nivel de control y personalización.

    Opción 2: Función Lambda

    Otra opción es utilizar una función Lambda como consumidora de Kafka. Lambda puede integrarse con Kafka utilizando AWS MSK (Managed Streaming for Kafka). Lambda puede procesar y almacenar datos en PostgreSQL, y también puede escalar automáticamente según la demanda.

    Esta opción ofrece la ventaja de la informática sin servidor, lo que significa que no es necesario administrar ninguna infraestructura. La facturación se basa en el uso real, lo que puede ser muy rentable para cargas de trabajo pequeñas o esporádicas.

    Opción 3: Aplicación independiente .Net

    Una tercera opción es crear una aplicación independiente .Net como consumidor de Kafka. Esta aplicación se puede implementar en una instancia de EC2 y puede escuchar mensajes de Kafka y procesarlos utilizando la pila de tecnología .Net. Luego puede almacenar datos en la base de datos PostgreSQL.

    Esta opción ofrece un alto nivel de personalización y control sobre la solución. Se puede implementar en EC2, lo que proporciona más control sobre la seguridad y la red.

    Conclusión

    Según las necesidades y requisitos específicos del proyecto, cualquiera de las opciones de diseño anteriores puede ser la elección correcta. Una solución bien diseñada debe tener en cuenta factores como el costo, la escalabilidad, la seguridad, la facilidad de administración y el rendimiento. Es crucial elegir la opción que se alinee con los objetivos y la visión a largo plazo del proyecto.

Comments are closed.