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.

¿Casos de uso para utilizar Apache Kafka?

Hasta donde entiendo, el Consumidor en Kafka siempre consulta el tema. Al menos vi esto en este código:

ConsumerRecords<string, string=””> registros = consumer.poll(Duration.ofMillis(100));

Por lo tanto, los casos de uso para Kafka deberían ser muy diferentes en comparación con un mundo REST. En un REST, solo “consultas” cuando realmente necesitas los datos. La consulta innecesaria es simplemente un tráfico de red inútil. Si eres un editor de periódicos, siempre quieres las últimas noticias, por lo que consultas. Buen caso de uso para Kafka. O tal vez en el Internet de las cosas, quieras saber si una máquina está a punto de colapsar, por lo que consultas y preguntas el estado regularmente.

Realmente no entiendo por qué Kafka se usa tanto en microservicios. Digamos que tenemos un microservicio de pedidos y un microservicio de calculadora. Si la calculadora quiere calcular el pedido del mes pasado en un mundo REST, llamaría a get /orders/month/july, por ejemplo. ¿Qué sentido tendría Kafka en este ejemplo? En primer lugar, no almacenarías los pedidos en un tema, sino en una tabla. Hasta donde entiendo, los temas de Kafka son como “tablas”. Entonces, cuando usas Kafka, no hay otra base de datos involucrada. ¿Correcto?</string,>

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en apache-kafka y kafka-consumer-api, puedo explicar el concepto de polling en Kafka y sus casos de uso, así como abordar la pregunta de por qué se usa Kafka en microservicios.

    Los consumidores de Kafka son responsables de extraer datos de los temas de Kafka. En el código de ejemplo proporcionado, el consumidor realiza un polling del tema para los mensajes cada 100 milisegundos. Esta es una práctica común en Kafka porque asegura que los consumidores reciban los últimos datos tan pronto como estén disponibles.

    En cuanto a los casos de uso, Kafka es ideal para escenarios donde se requiere procesamiento de datos en tiempo real. Por ejemplo, en el caso de un editorial de noticias, siempre querrían las últimas noticias, por lo que continuamente estarían realizando un polling de nuevos artículos. De manera similar, en el Internet de las cosas, se podría monitorear la salud de una máquina mediante la realización regular de una extracción de actualizaciones.

    En cuanto a microservicios, Kafka se utiliza a menudo porque proporciona una cola de mensajes escalable y tolerante a fallos que puede manejar grandes volúmenes de datos. En una arquitectura de microservicios, los servicios necesitan comunicarse entre sí de manera asíncrona, y Kafka proporciona un mecanismo confiable para hacerlo. Por ejemplo, en el caso de un microservicio de pedidos y un microservicio de calculadora, Kafka podría usarse para enviar órdenes desde el servicio de pedidos al servicio de calculadora para realizar cálculos.

    Sin embargo, hay escenarios donde Kafka podría no ser la elección adecuada. Por ejemplo, en el caso de la recopilación de los pedidos del último mes, no sería necesario almacenar esta información en un tema de Kafka, ya que es una pieza de información estática. En su lugar, podría ser almacenada en una base de datos o en caché, y recuperada mediante una API REST con una solicitud GET.

    Por último, los temas de Kafka son similares a las tablas, pero no son un reemplazo de una base de datos. Kafka puede funcionar con bases de datos tradicionales, pero también puede funcionar como un canal de datos independiente. Puede manejar grandes cantidades de datos en tiempo real y proporcionar un medio de integrar múltiples servicios y sistemas.

Comments are closed.