{"id":14948,"date":"2024-03-10T11:51:16","date_gmt":"2024-03-10T08:21:16","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=14948"},"modified":"2024-03-10T11:51:16","modified_gmt":"2024-03-10T08:21:16","slug":"kafka-event-streaming-explained","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/kafka-event-streaming-explained\/","title":{"rendered":"Explicaci\u00f3n del flujo de eventos de Kafka"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">Introducci\u00f3n<\/h2>\n<p>Los m\u00e9todos tradicionales de procesamiento y recepci\u00f3n de datos (como el procesamiento por lotes y el sondeo) son ineficientes en el contexto de los microservicios utilizados en aplicaciones modernas. Estos m\u00e9todos operan con grandes cantidades de datos, lo que retrasa el resultado final de su procesamiento y obliga a acumular una cantidad significativa de datos antes de su procesamiento. Introducen la complejidad adicional necesaria para sincronizar los trabajadores y potencialmente dejan algunos de ellos infrautilizados a pesar del uso de recursos. Por el contrario, dado que la computaci\u00f3n en la nube ofrece una r\u00e1pida escalabilidad para los recursos locales, los datos entrantes pueden procesarse en tiempo real deleg\u00e1ndolos a varios trabajadores en paralelo.<\/p>\n<p>La transmisi\u00f3n de eventos es un enfoque que permite recopilar y delegar de forma flexible los eventos entrantes para su procesamiento, manteniendo al mismo tiempo un flujo continuo de datos entre diferentes sistemas. Programar los datos entrantes para su procesamiento inmediato garantiza la m\u00e1xima utilizaci\u00f3n de recursos y una capacidad de respuesta en tiempo real. La transmisi\u00f3n de eventos separa a los productores de los consumidores, lo que permite tener un n\u00famero desproporcionado de cada uno seg\u00fan la carga actual. Esto permite respuestas instant\u00e1neas a las condiciones din\u00e1micas del mundo real.<\/p>\n<p>Esta capacidad de respuesta puede ser especialmente importante en \u00e1reas como el comercio financiero, la monitorizaci\u00f3n de pagos o la supervisi\u00f3n del tr\u00e1fico. Por ejemplo, Uber utiliza la transmisi\u00f3n de eventos para conectar cientos de microservicios, enviando datos de eventos desde las aplicaciones de pasajero a conductor en tiempo real y archiv\u00e1ndolos para su posterior an\u00e1lisis.<\/p>\n<p>Con la difusi\u00f3n de eventos, en lugar de que un trabajador espere un lote de datos a intervalos regulares, el agente de eventos puede notificar al consumidor (normalmente un microservicio) en cuanto ocurre el evento y proporcionarle los datos. El agente de eventos se encarga del enrutamiento, la recepci\u00f3n y la entrega de eventos. Tambi\u00e9n proporciona tolerancia a fallos en caso de que un trabajador falle o se niegue a procesar un evento.<\/p>\n<p>En este documento conceptual, exploraremos el enfoque de transmisi\u00f3n de eventos y sus beneficios. Tambi\u00e9n presentaremos Apache Kafka, un gestor de eventos de c\u00f3digo abierto, y examinaremos su papel en este enfoque.<\/p>\n<h2 id=\"%d9%85%d8%b9%d9%85%d8%a7%d8%b1%db%8c-%d8%ac%d8%b1%db%8c%d8%a7%d9%86-%d8%b1%d9%88%db%8c%d8%af%d8%a7%d8%af\">Arquitectura del flujo de eventos<\/h2>\n<p>El flujo de eventos es, en esencia, una implementaci\u00f3n del patr\u00f3n arquitect\u00f3nico pub\/sub. En general, este patr\u00f3n incluye:<\/p>\n<ul>\n<li>Los temas a los que se dirigen los mensajes (incluido cualquier dato que desee comunicar).<\/li>\n<li>Editores que producen mensajes<\/li>\n<li>Suscriptores que reciben mensajes y act\u00faan sobre ellos<\/li>\n<li>Un agente de mensajes que acepta mensajes de los editores y los entrega a los suscriptores de la manera m\u00e1s eficiente.<\/li>\n<\/ul>\n<p>Un tema es similar a una categor\u00eda a la que se asocia un mensaje. Los temas almacenan de forma persistente la secuencia de mensajes y garantizan que los nuevos mensajes siempre se a\u00f1adan al final de la secuencia. Una vez que se a\u00f1ade un mensaje a un tema, no se puede modificar posteriormente.<\/p>\n<p>En la retransmisi\u00f3n de eventos, la premisa es similar, aunque m\u00e1s especializada:<\/p>\n<ul>\n<li>Los eventos y metadatos relacionados se env\u00edan como mensajes.<\/li>\n<li>Los eventos de un tema generalmente se ordenan por hora de llegada.<\/li>\n<li>Los suscriptores (tambi\u00e9n llamados consumidores) pueden transmitir eventos desde cualquier punto del hilo hasta el momento actual.<\/li>\n<li>A diferencia del sistema de publicaci\u00f3n\/suscripci\u00f3n real, los eventos de un tema se pueden conservar durante un per\u00edodo de tiempo espec\u00edfico o de manera indefinida (como un archivo).<\/li>\n<\/ul>\n<p>El flujo de eventos no impone restricciones ni hace suposiciones sobre la naturaleza de un evento. Para el agente subyacente, significa que un productor le ha notificado que algo ha sucedido. Lo que realmente sucedi\u00f3 depende de usted para definir y dar significado a su implementaci\u00f3n. Por esta raz\u00f3n, desde la perspectiva del agente, los eventos se denominan mensajes o registros indistintamente.<\/p>\n<p>Para ilustrarlo, aqu\u00ed hay un diagrama detallado de la arquitectura del flujo de eventos de Kafka de la documentaci\u00f3n de Confluent:<\/p>\n<p><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"2000\"  height=\"750\"  class=\"aligncenter wp-image-14949 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 2000px) 100vw, 2000px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX.png\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX.png 2000w, https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX-300x113.png 300w, https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX-1024x384.png 1024w, https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX-768x288.png 768w, https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX-1536x576.png 1536w, https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX-110x41.png 110w, https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX-200x75.png 200w, https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX-380x143.png 380w, https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX-255x96.png 255w, https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX-550x206.png 550w, https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX-800x300.png 800w, https:\/\/cdn.itpiran.net\/2024\/03\/10113433\/hHJeiWX-1160x435.png 1160w\" ><br \/>\nExisten dos modelos para que los consumidores recuperen datos de un intermediario: push y pull. Push se refiere a que el intermediario de eventos inicia el proceso de env\u00edo de datos a un consumidor inicialmente disponible, mientras que pull significa que el consumidor solicita al intermediario los registros disponibles posteriores. Esta distinci\u00f3n parece inofensiva, pero en la pr\u00e1ctica se prefiere pull.<\/p>\n<p>Una de las principales razones por las que el env\u00edo no se usa ampliamente es que el br\u00f3ker no puede garantizar que el consumidor pueda actuar sobre el evento. Por lo tanto, podr\u00eda terminar enviando el evento varias veces innecesariamente, aunque a\u00fan necesite almacenarlo en el tema. El br\u00f3ker tambi\u00e9n deber\u00eda considerar la agrupaci\u00f3n de eventos para un mayor rendimiento, lo cual es lo opuesto a la idea de transmitirlos lo m\u00e1s r\u00e1pido posible.<\/p>\n<p>Permitir que el consumidor extraiga los datos cuando est\u00e9n listos para procesarlos reduce el tr\u00e1fico innecesario de red y permite una mayor confiabilidad. Esto garantiza que solo reciba datos cuando est\u00e9n listos para procesarlos. El tiempo de procesamiento depende de la l\u00f3gica de negocio y afecta la programaci\u00f3n del n\u00famero de trabajadores. En ambos casos, el intermediario debe recordar qu\u00e9 eventos ha reconocido el consumidor.<\/p>\n<p>Ahora que sabe qu\u00e9 es la transmisi\u00f3n de eventos y en qu\u00e9 arquitectura se basa, aprender\u00e1 sobre los beneficios de este enfoque din\u00e1mico.<\/p>\n<h2 id=\"%d9%85%d8%b2%d8%a7%db%8c%d8%a7%db%8c-%d9%be%d8%ae%d8%b4-%d8%ac%d8%b1%db%8c%d8%a7%d9%86%db%8c-%d8%b1%d9%88%db%8c%d8%af%d8%a7%d8%af\">Beneficios de la transmisi\u00f3n de eventos<\/h2>\n<p>Los principales beneficios de la retransmisi\u00f3n de eventos son:<\/p>\n<ul>\n<li>Coherencia: el agente de eventos garantiza que los eventos se env\u00eden correctamente a todos los consumidores interesados.<\/li>\n<li>Tolerancia a fallos: si un consumidor no acepta un evento, se lo puede redirigir a otro lugar para garantizar que ning\u00fan evento quede sin procesar.<\/li>\n<li>Reutilizaci\u00f3n: Los eventos almacenados en un hilo son inmutables. Pueden reproducirse en su totalidad o desde un punto espec\u00edfico, lo que permite reprocesarlos si la l\u00f3gica de negocio cambia.<\/li>\n<li>Escalabilidad: los productores y los consumidores son entidades separadas y no tienen que esperarse unos a otros, lo que significa que pueden escalar din\u00e1micamente hacia arriba o hacia abajo seg\u00fan la demanda.<\/li>\n<li>Facilidad de uso: el agente de eventos maneja el enrutamiento y el almacenamiento de eventos, abstrayendo la l\u00f3gica compleja y permiti\u00e9ndole concentrarse en los datos en s\u00ed.<\/li>\n<\/ul>\n<p>Cada evento debe contener \u00fanicamente los detalles necesarios sobre la ocurrencia. Los gestores de eventos suelen ser muy eficientes y, aunque se recomienda que los eventos no caduquen una vez registrados en un tema, no deben tratarse como una base de datos tradicional.<\/p>\n<p>Por ejemplo, ser\u00eda \u00fatil mostrar que el n\u00famero de visualizaciones de un art\u00edculo ha cambiado, pero no es necesario almacenar el art\u00edculo completo y sus metadatos junto con este dato. En su lugar, el evento podr\u00eda contener una referencia al ID del art\u00edculo en una base de datos externa. De esta forma, se puede seguir rastreando el historial sin incluir informaci\u00f3n innecesaria ni contaminar el hilo.<\/p>\n<p>Ahora aprender\u00e1 sobre Apache Kafka y otros agentes de eventos populares, c\u00f3mo se comparan y c\u00f3mo encajan en el ecosistema de transmisi\u00f3n de eventos.<\/p>\n<h2 id=\"%d9%86%d9%82%d8%b4-%d8%a2%d9%be%d8%a7%da%86%db%8c-%da%a9%d8%a7%d9%81%da%a9%d8%a7\">El papel de Apache Kafka<\/h2>\n<p>Apache Kafka es un agente de eventos de c\u00f3digo abierto escrito en Java y mantenido por la Apache Software Foundation. Consiste en servidores y clientes distribuidos que se comunican mediante un protocolo de red TCP personalizado para obtener el m\u00e1ximo rendimiento. Kafka es altamente confiable y escalable, y puede ejecutarse en m\u00e1quinas virtuales, hardware f\u00edsico, contenedores y otros entornos de nube.<\/p>\n<p>Para garantizar la confiabilidad, Kafka se implementa como un cl\u00faster compuesto por uno o m\u00e1s servidores. Este cl\u00faster puede abarcar m\u00faltiples regiones de la nube y centros de datos. Los cl\u00fasteres de Kafka son tolerantes a fallos, lo que significa que, en caso de fallo o desconexi\u00f3n del servidor, los remanentes se reagrupan para garantizar una alta disponibilidad de las operaciones sin impacto externo ni p\u00e9rdida de datos.<\/p>\n<p>Para lograr la m\u00e1xima eficiencia, no todos los servidores de Kafka cumplen la misma funci\u00f3n. Algunos servidores se agrupan y act\u00faan como intermediarios, formando una capa de almacenamiento para almacenar datos. Otros pueden integrarse con sus sistemas existentes e ingerir datos como flujos de eventos mediante Kafka Connect, una herramienta para la transmisi\u00f3n fiable de datos desde sistemas existentes (como bases de datos relacionales) a Kafka.<\/p>\n<p>Kafka considera a productores y consumidores como sus clientes. Como se explic\u00f3 anteriormente, los productores escriben eventos en un br\u00f3ker de Kafka, que los env\u00eda a los consumidores interesados. En la configuraci\u00f3n predeterminada, Kafka garantiza que cada evento sea procesado una sola vez por uno de los consumidores.<\/p>\n<p>En Kafka, los temas est\u00e1n particionados. Esto significa que un tema se distribuye en partes entre diferentes intermediarios de Kafka, lo que garantiza la escalabilidad. Kafka tambi\u00e9n garantiza que los eventos almacenados en una combinaci\u00f3n espec\u00edfica de temas y sus particiones siempre se puedan leer en el mismo orden en que se escribieron.<\/p>\n<p>Tenga en cuenta que la simple partici\u00f3n de un tema no garantiza la redundancia, que solo se puede lograr mediante la replicaci\u00f3n entre regiones y centros de datos. Es com\u00fan tener al menos tres copias de un cl\u00faster en un entorno de producci\u00f3n, lo que significa que siempre hay tres combinaciones de tema y partici\u00f3n disponibles.<\/p>\n<h2 id=\"%d8%a7%d8%af%d8%ba%d8%a7%d9%85-%da%a9%d8%a7%d9%81%da%a9%d8%a7\">Integraci\u00f3n de Kafka<\/h2>\n<p>Como se mencion\u00f3, los datos de sistemas existentes se pueden importar y exportar con Kafka Connect. Es ideal para importar bases de datos completas, informes o m\u00e9tricas desde sus servidores en subprocesos de baja latencia. Kafka Connect proporciona conectores para diferentes sistemas de datos que permiten gestionar los datos de forma est\u00e1ndar. Otra ventaja de usar conectores en lugar de soluciones propias es que Connect es escalable por defecto (se pueden agrupar varios trabajadores) y monitoriza autom\u00e1ticamente el progreso.<\/p>\n<p>Hay una gran cantidad de clientes disponibles para comunicarse con Kafka a trav\u00e9s de sus aplicaciones. Se admiten numerosos lenguajes de programaci\u00f3n, como Java, Scala, Python, .NET, C++, Go, etc. Tambi\u00e9n est\u00e1 disponible una biblioteca cliente de alto nivel llamada Kafka Streams para Java y Scala. Esta biblioteca abstrae los componentes internos y permite conectarse f\u00e1cilmente a un servidor Kafka y comenzar a recibir eventos de difusi\u00f3n.<\/p>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\">Resultado<\/h2>\n<p>Este art\u00edculo aborda los paradigmas del enfoque moderno de flujo de eventos para el procesamiento de datos y eventos, as\u00ed como sus ventajas sobre los procesos tradicionales de categorizaci\u00f3n de datos. Tambi\u00e9n aprendi\u00f3 sobre Apache Kafka como agente de eventos y su ecosistema de clientes.<\/p>","protected":false},"excerpt":{"rendered":"Introducci\u00f3n Los m\u00e9todos tradicionales de procesamiento y recepci\u00f3n de datos (como el procesamiento por lotes y el sondeo) en el contexto de los microservicios utilizados en\u2026","protected":false},"author":1,"featured_media":14951,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"\u0631\u0648\u06cc\u062f\u0627\u062f \u06a9\u0627\u0641\u06a9\u0627","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"193","footnotes":""},"categories":[193,266],"tags":[410,138],"class_list":{"0":"post-14948","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tutorials","8":"category-news","9":"tag-kafka","10":"tag-138"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u062a\u0648\u0636\u06cc\u062d \u062c\u0631\u06cc\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u06a9\u0627\u0641\u06a9\u0627 - \u0628\u0644\u0627\u06af ITPiran<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/kafka-event-streaming-explained\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u062a\u0648\u0636\u06cc\u062d \u062c\u0631\u06cc\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u06a9\u0627\u0641\u06a9\u0627 - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0633\u0646\u062a\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627 (\u0645\u0627\u0646\u0646\u062f \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0633\u062a\u0647\u200c\u0627\u06cc \u0648 \u0646\u0638\u0631\u0633\u0646\u062c\u06cc) \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0631\u06cc\u0632\u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/kafka-event-streaming-explained\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-10T08:21:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2024\/03\/10115014\/kafka.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"\u062a\u0648\u0636\u06cc\u062d \u062c\u0631\u06cc\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u06a9\u0627\u0641\u06a9\u0627\",\"datePublished\":\"2024-03-10T08:21:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/\"},\"wordCount\":16,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/10115014\\\/kafka.jpg\",\"keywords\":[\"kafka\",\"\u062e\u0628\u0631 \u0645\u0647\u0645\"],\"articleSection\":[\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"\u0627\u062e\u0628\u0627\u0631\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/\",\"name\":\"\u062a\u0648\u0636\u06cc\u062d \u062c\u0631\u06cc\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u06a9\u0627\u0641\u06a9\u0627 - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/10115014\\\/kafka.jpg\",\"datePublished\":\"2024-03-10T08:21:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/10115014\\\/kafka.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/10115014\\\/kafka.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/kafka-event-streaming-explained\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u062a\u0648\u0636\u06cc\u062d \u062c\u0631\u06cc\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u06a9\u0627\u0641\u06a9\u0627\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/es\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Explicaci\u00f3n del flujo de eventos de Kafka - Blog de ITPiran","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/kafka-event-streaming-explained\/","og_locale":"es_ES","og_type":"article","og_title":"\u062a\u0648\u0636\u06cc\u062d \u062c\u0631\u06cc\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u06a9\u0627\u0641\u06a9\u0627 - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0633\u0646\u062a\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u062f\u0627\u062f\u0647\u200c\u0647\u0627 (\u0645\u0627\u0646\u0646\u062f \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0633\u062a\u0647\u200c\u0627\u06cc \u0648 \u0646\u0638\u0631\u0633\u0646\u062c\u06cc) \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0631\u06cc\u0632\u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/kafka-event-streaming-explained\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2024-03-10T08:21:16+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2024\/03\/10115014\/kafka.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"admin"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"\u062a\u0648\u0636\u06cc\u062d \u062c\u0631\u06cc\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u06a9\u0627\u0641\u06a9\u0627","datePublished":"2024-03-10T08:21:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/"},"wordCount":16,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/03\/10115014\/kafka.jpg","keywords":["kafka","\u062e\u0628\u0631 \u0645\u0647\u0645"],"articleSection":["\u0622\u0645\u0648\u0632\u0634\u06cc","\u0627\u062e\u0628\u0627\u0631"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/","url":"https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/","name":"Explicaci\u00f3n del flujo de eventos de Kafka - Blog de ITPiran","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/03\/10115014\/kafka.jpg","datePublished":"2024-03-10T08:21:16+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2024\/03\/10115014\/kafka.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2024\/03\/10115014\/kafka.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/kafka-event-streaming-explained\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0648\u0632\u0634\u06cc","item":"https:\/\/www.itpiran.net\/blog\/category\/tutorials\/"},{"@type":"ListItem","position":3,"name":"\u062a\u0648\u0636\u06cc\u062d \u062c\u0631\u06cc\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u06a9\u0627\u0641\u06a9\u0627"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"Blog de ITPiran","description":"Noticias y art\u00edculos sobre comercio sostenible en Ir\u00e1n","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"Blog sobre negocios iran\u00edes sostenibles","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"administraci\u00f3n","url":"https:\/\/www.itpiran.net\/blog\/es\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/posts\/14948","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/comments?post=14948"}],"version-history":[{"count":1,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/posts\/14948\/revisions"}],"predecessor-version":[{"id":14950,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/posts\/14948\/revisions\/14950"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/media\/14951"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/media?parent=14948"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/categories?post=14948"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/tags?post=14948"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}