{"id":170,"date":"2019-02-16T19:33:51","date_gmt":"2019-02-16T18:33:51","guid":{"rendered":"http:\/\/aprenderbigdata.com\/?p=170"},"modified":"2025-05-12T14:59:40","modified_gmt":"2025-05-12T13:59:40","slug":"introduccion-apache-kafka","status":"publish","type":"post","link":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/","title":{"rendered":"Apache Kafka: Introducci\u00f3n"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Aprende los aspectos clave del sistema de mensajer\u00eda para <strong><a href=\"https:\/\/aprenderbigdata.com\/que-es-el-big-data\/\">Big Data<\/a><\/strong>. En este art\u00edculo encontrar\u00e1s una introducci\u00f3n a Apache Kafka y a algunos de sus componentes b\u00e1sicos y arquitectura. De esta forma, podr\u00e1s familiarizarte con sus particularidades.<\/p>\n\n\n<figure class=\"wp-block-post-featured-image\"><img decoding=\"async\" width=\"1280\" height=\"720\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka.jpg\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\u00bfQu\u00e9 es Apache Kafka? Introducci\u00f3n\" style=\"object-fit:cover;\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka.jpg 1280w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka-300x169.jpg 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka-1024x576.jpg 1024w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka-768x432.jpg 768w\" sizes=\"(max-width: 1280px) 100vw, 1280px\" \/><\/figure>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-7d812b4c wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-outline is-style-outline--2\"><a class=\"wp-block-button__link has-black-color has-white-background-color has-text-color has-background wp-element-button\" href=\"https:\/\/go.hotmart.com\/V75475436D?SCK=INTROKAFKA\" target=\"_blank\" rel=\"noopener nofollow noreferrer noopener\">Aprende Apache Kafka desde Cero<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenidos<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a6636b681ccd\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a6636b681ccd\" checked aria-label=\"Alternar\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#%C2%BFQue-es-Apache-Kafka\" >\u00bfQu\u00e9 es Apache Kafka?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Patron-Publish-Subscribe\" >Patr\u00f3n Publish \/ Subscribe<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Componentes-Basicos-de-Kafka\" >Componentes B\u00e1sicos de Kafka<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Topics\" >Topics<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Productores\" >Productores<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Consumidores\" >Consumidores<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#APIs-y-Complementos-de-Kafka\" >APIs y Complementos de Kafka<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Schema-Registry-en-Kafka\" >Schema Registry en Kafka<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Zookeeper-en-Apache-Kafka\" >Zookeeper en Apache Kafka<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Ventajas-de-Apache-Kafka\" >Ventajas de Apache Kafka<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Desventajas-de-Apache-Kafka\" >Desventajas de Apache Kafka<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Apache-Kafka-como-base-de-datos\" >Apache Kafka como base de datos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Como-elegir-la-distribucion-de-Apache-Kafka-adecuada\" >C\u00f3mo elegir la distribuci\u00f3n de Apache Kafka adecuada<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Confluent\" >Confluent<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Cloudera\" >Cloudera<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Red-Hat-%E2%80%93-IBM\" >Red Hat &#8211; IBM<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Amazon-MSK-AWS\" >Amazon MSK (AWS)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Curso-de-Apache-Kafka-Siguientes-Pasos\" >Curso de Apache Kafka: Siguientes Pasos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#Preguntas-frecuentes-de-Apache-Kafka-%E2%80%93-FAQ\" >Preguntas frecuentes de Apache Kafka &#8211; FAQ<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#%C2%BFPara-que-se-usa-Apache-Kafka\" >\u00bfPara qu\u00e9 se usa Apache Kafka?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#%C2%BFEs-Apache-Kafka-una-base-de-datos\" >\u00bfEs Apache Kafka una base de datos?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#%C2%BFQue-es-un-broker-de-Kafka\" >\u00bfQu\u00e9 es un br\u00f3ker de Kafka?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#%C2%BFQue-ventajas-tiene-Apache-Kafka\" >\u00bfQu\u00e9 ventajas tiene Apache Kafka?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#%C2%BFEs-Kafka-un-sistema-asincrono\" >\u00bfEs Kafka un sistema as\u00edncrono?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"que-es-apache-kafka\"><span class=\"ez-toc-section\" id=\"%C2%BFQue-es-Apache-Kafka\"><\/span>\u00bfQu\u00e9 es Apache Kafka?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Apache Kafka originalmente consist\u00eda en un <strong>sistema de intermediaci\u00f3n de mensajes<\/strong> basado en el modelo publicador\/subscriptor en el que varios productores y subscriptores pueden leer y escribir. Con el tiempo y la evoluci\u00f3n del producto se ha convertido en toda una <strong><a href=\"https:\/\/aprenderbigdata.com\/stream-processing\/\">plataforma de streaming de eventos distribuida<\/a><\/strong> y el est\u00e1ndar de facto para streaming. Adem\u00e1s tambi\u00e9n podemos considerarla una herramienta complementaria a las bases de datos, proporcionando garant\u00edas ACID.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Apache Kafka surgi\u00f3 en la empresa LinkedIn como una cola de mensajer\u00eda para interconectar varios sistemas de forma escalable. En el a\u00f1o 2011 el proyecto entr\u00f3 en la incubadora de la Apache Software Foundation, en la que se gradu\u00f3 como top-level project en el a\u00f1o 2012. Apache Kafka est\u00e1 escrito en <strong><a href=\"https:\/\/aprenderbigdata.com\/cursos-java-udemy\/\">Java<\/a><\/strong> y <strong><a href=\"https:\/\/aprenderbigdata.com\/introduccion-scala\/\">Scala<\/a><\/strong>. Es de <a href=\"https:\/\/aprenderbigdata.com\/contribuir-open-source\/\"><strong>c\u00f3digo abierto (open source)<\/strong><\/a>, y se distribuye con licencia Apache 2.0. En la actualidad, cuenta con m\u00e1s de 700 contribuidores y m\u00e1s de 40 committers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kafka proporciona la plataforma para publicar y suscribirse a flujos de eventos y permite almacenar estos eventos de una forma tolerante a fallos, escalable, persistente y con capacidad de replicaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s de almacenar estos eventos, la funcionalidad se extiende con la capacidad de procesarlos en tiempo real, a medida que se reciben de m\u00faltiples fuentes de datos. Kafka se integra con numerosas tecnolog\u00edas, de esta forma, permite construir flujos de datos en tiempo real entre distintos sistemas y aplicaciones de manera desacoplada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por estas razones, Apache Kafka es muy popular en la arquitectura Big Data de muchas empresas en la actualidad. Debido a su arquitectura, consigue obtener una <strong>baja latencia<\/strong>, escalabilidad horizontal y absorber los picos de carga que pueden ocurrir en el sistema.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"patron-publish-subscribe\"><span class=\"ez-toc-section\" id=\"Patron-Publish-Subscribe\"><\/span>Patr\u00f3n Publish \/ Subscribe<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El patr\u00f3n publicador \/ subscriptor (tambi\u00e9n llamado productor \/ consumidor, editor \/ subscriptor o publish \/ subscribe) es un concepto que debemos tener en cuenta para entender c\u00f3mo funciona Apache Kafka.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este patr\u00f3n se usa para comunicar aplicaciones a trav\u00e9s de mensajes: es un sistema de eventos distribuidos en el que un suscriptor tiene inter\u00e9s por ciertos eventos. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El editor o publicador es el que genera los eventos, que m\u00e1s adelante se env\u00edan a los subscriptores interesados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El subscriptor puede incorporar un filtro para consumir solo los mensajes que le interesen.&nbsp;Este suscriptor, por tanto, se suscribe a uno o varios tipos de mensajes, que m\u00e1s adelante denominaremos temas o topics.<\/p>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"914\" height=\"322\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/diagrama-editor-subscriptor.jpg\" alt=\"Diagrama patr\u00f3n editor subscriptor\" class=\"wp-image-3953\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/diagrama-editor-subscriptor.jpg 914w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/diagrama-editor-subscriptor-300x106.jpg 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/diagrama-editor-subscriptor-768x271.jpg 768w\" sizes=\"(max-width: 914px) 100vw, 914px\" \/><figcaption class=\"wp-element-caption\">Diagrama patr\u00f3n editor subscriptor<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Este modelo de mensajer\u00eda es un paradigma as\u00edncrono y desacoplado en el espacio ya que los editores y los subscriptores no se conocen entre s\u00ed (como ocurre en los modelos tradicionales de cliente-servidor).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En un modelo editor-subscriptor, puede existir un proceso intermediario como ocurre en Apache Kafka. Este intermediario aumenta el desacoplamiento, pero tambi\u00e9n puede ser un cuello de botella y un punto de fallo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La soluci\u00f3n es distribuir este proceso en una red de intermediarios (brokers) que proporciona la escalabilidad y la fiabilidad que necesitamos. Si un broker falla o se queda sin conectividad, otro broker puede tomar su lugar y gestionar las peticiones.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"componentes-basicos-de-kafka\"><span class=\"ez-toc-section\" id=\"Componentes-Basicos-de-Kafka\"><\/span>Componentes B\u00e1sicos de Kafka<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n voy a explicar los componentes b\u00e1sicos de Apache Kafka.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"topics\"><span class=\"ez-toc-section\" id=\"Topics\"><\/span>Topics<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Los Topics en Kafka son las categor\u00edas en las que se clasifican los mensajes. As\u00ed, podemos entender cada topic como si fuera un flujo de datos.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"particiones\">Particiones<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Cada topic est\u00e1 dividido en <strong><a href=\"https:\/\/aprenderbigdata.com\/particiones-datos\/\">particiones<\/a><\/strong>, que permiten a  Kafka distribuir los datos en los nodos conectados (brokers). Es la unidad de paralelismo para dotar a Kafka de escalabilidad horizontal. A cada mensaje que se quiere escribir en un topic, se le asigna una clave de partici\u00f3n. En el caso de que no se le asigne ninguna clave de partici\u00f3n, \u00e9sta se calcula de forma aleatoria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cada partici\u00f3n tiene un <strong>offset<\/strong> asociado. El offset es un identificador incremental asignado a cada mensaje. Con este mecanismo, se puede identificar un mensaje con el nombre del topic que lo contiene, la partici\u00f3n y el offset.<\/p>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"489\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/kafka-topic-esquema-1024x489.png\" alt=\"Esquema de particiones en Kafka\" class=\"wp-image-3062\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/kafka-topic-esquema-1024x489.png 1024w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/kafka-topic-esquema-300x143.png 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/kafka-topic-esquema-768x367.png 768w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/kafka-topic-esquema-1536x734.png 1536w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/kafka-topic-esquema-2048x978.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Esquema de particiones en Kafka<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n es interesante mencionar el concepto de <strong>compactaci\u00f3n de logs<\/strong> en Kafka. Mediante este mecanismo, peri\u00f3dicamente podemos invalidar los registros con clave <em>null<\/em> y de esta forma limpiar la partici\u00f3n de datos innecesarios, qued\u00e1ndonos \u00fanicamente con el \u00faltimo registro para cada clave.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A menudo tambi\u00e9n se denominan los topics y particiones de Kafka como <strong>commit log<\/strong>&nbsp;o log de registro distribuido. Esta estructura de datos ordenados solo permiten anexar al final nuevos registros y adem\u00e1s no permiten su eliminaci\u00f3n o modificaci\u00f3n una vez persistidos (inmutabilidad).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Debemos tener en cuenta que el rendimiento de Apache Kafka es constante respecto al tama\u00f1o de los datos persistidos en el disco.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"replicacion\">Replicaci\u00f3n<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Una r\u00e9plica en Kafka consiste en realizar una copia de una partici\u00f3n disponible en otro broker. Este mecanismo de replicaci\u00f3n permite a Kafka ser tolerante a fallos y asegura que no hay p\u00e9rdida de datos. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando existen varias r\u00e9plicas disponibles, una de ellas es elegida como l\u00edder, y el resto como seguidores. Las r\u00e9plicas que siguen al l\u00edder y est\u00e1n sincronizadas se marcan como <strong>ISR<\/strong> (In Sync Replica). Para que un topic se encuentre en un estado sano, el valor de ISR debe ser igual al factor de replicaci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"productores\"><span class=\"ez-toc-section\" id=\"Productores\"><\/span><strong>Productores<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Se denominan productores a los clientes conectados a Kafka encargados de publicar mensajes en un broker. Son los responsables de serializar, particionar, comprimir y repartir la carga entre los brokers en funci\u00f3n de las particiones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La asignaci\u00f3n de mensajes a topics puede realizarse con el m\u00e9todo round-robin o con alguna funci\u00f3n sem\u00e1ntica que determine la partici\u00f3n. Debemos tenerlo en cuenta para intentar tener particiones balanceadas.<\/p>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"247\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/esquema-pub-sub-1024x247.png\" alt=\"Esquema de productores y consumidores \" class=\"wp-image-3059\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/esquema-pub-sub-1024x247.png 1024w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/esquema-pub-sub-300x72.png 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/esquema-pub-sub-768x185.png 768w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/esquema-pub-sub-1536x371.png 1536w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/esquema-pub-sub.png 2004w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Esquema de productores y consumidores<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Los mensajes est\u00e1n compuestos por una clave, el valor y una marca de tiempo asignada. Se recomienda no almacenar mensajes de m\u00e1s de 1MB, que es el valor por defecto en la configuraci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La escritura por parte del productor incluye 5 pasos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Serializaci\u00f3n<\/li>\n\n\n\n<li>Particionado<\/li>\n\n\n\n<li>Compresi\u00f3n<\/li>\n\n\n\n<li>Acumulaci\u00f3n de registros<\/li>\n\n\n\n<li>Agrupaci\u00f3n por broker y env\u00edo<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"consumidores\"><span class=\"ez-toc-section\" id=\"Consumidores\"><\/span><strong>Consumidores<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Los consumidores de Kafka son los clientes conectados suscritos a los topics que consumen los mensajes. Cada consumidor tiene asociado un <strong>grupo de consumidores<\/strong>. Kafka garantiza que cada mensaje s\u00f3lo es le\u00eddo por un consumidor de cada grupo.<\/p>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"962\" height=\"477\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/grupos-consumidores-kafka.jpg\" alt=\"Grupos de Consumidores en Apache Kafka\" class=\"wp-image-3954\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/grupos-consumidores-kafka.jpg 962w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/grupos-consumidores-kafka-300x149.jpg 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/grupos-consumidores-kafka-768x381.jpg 768w\" sizes=\"(max-width: 962px) 100vw, 962px\" \/><figcaption class=\"wp-element-caption\">Grupos de Consumidores en Apache Kafka<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">En la imagen, un cluster de kafka est\u00e1 formado por dos brokers con 4 particiones con dos grupos de consumidores. En el grupo de consumidores A, Kafka asigna dos particiones a cada consumidor, mientras que en el grupo B, al haber 4 consumidores para 4 particiones, es posible asignar una partici\u00f3n a cada consumidor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"apis-y-complementos-de-kafka\"><span class=\"ez-toc-section\" id=\"APIs-y-Complementos-de-Kafka\"><\/span>APIs y Complementos de Kafka<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kafka dispone de 4 APIs principales que nos ayudan a implementar nuestras aplicaciones:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Productor<\/strong> (producer): Permite publicar mensajes en topics de forma sencilla y configurable.<\/li>\n\n\n\n<li><strong>Consumidor<\/strong> (consumer): Permite a la aplicaci\u00f3n suscribirse a topics y recibir mensajes para procesar.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/aprenderbigdata.com\/kafka-streams-ksql\/\">Kafka Streams y KSQL<\/a><\/strong>: Facilita procesar un flujo consumiendo un flujo de entrada de uno o m\u00e1s topics y produciendo un flujo para uno o m\u00e1s topics de salida.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/aprenderbigdata.com\/kafka-connect\/\">Kafka Connect<\/a><\/strong>: Se trata de un framework que proporciona la capacidad de conectar Kafka con sistemas externos para mover datos hacia o desde nuestro cl\u00faster. Para usar un conector y agregar datos a Kafka se puede usar un modelo Pull, por ejemplo con JDBC o bien un modelo push como en las herramientas de CDC (Change Data Capture). Las apis de Kafka Connect Sink y Consumidor son intercambiables, pero la primera ahorra mucho trabajo de implementaci\u00f3n y reduce el c\u00f3digo y el tiempo que necesitaremos.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"827\" height=\"503\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/diagrama-kafka-apis.jpg\" alt=\"Diagrama de APIs en Kafka\" class=\"wp-image-3956\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/diagrama-kafka-apis.jpg 827w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/diagrama-kafka-apis-300x182.jpg 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/diagrama-kafka-apis-768x467.jpg 768w\" sizes=\"(max-width: 827px) 100vw, 827px\" \/><figcaption class=\"wp-element-caption\">Esquema de APIs en Apache Kafka<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, proporciona herramientas como <a href=\"https:\/\/aprenderbigdata.com\/kafka-mirror-maker\/\"><strong>Mirror Maker<\/strong><\/a>, que nos ayuda a implementar nuestras arquitecturas multi-cl\u00faster con mirroring.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s de estos componentes, existen numerosos<strong> conectores a fuentes externas de datos<\/strong> como <strong><a href=\"https:\/\/aprenderbigdata.com\/hdfs\/\">HDFS<\/a><\/strong>, JDBC, <a href=\"https:\/\/aprenderbigdata.com\/objetos-vs-bloques\/\"><strong>S3<\/strong><\/a>, FTP, <a href=\"https:\/\/aprenderbigdata.com\/elasticsearch\/\"><strong>Elasticsearch<\/strong><\/a>, etc.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"schema-registry-en-kafka\"><span class=\"ez-toc-section\" id=\"Schema-Registry-en-Kafka\"><\/span>Schema Registry en Kafka<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Schema Registry<\/strong> permite registrar esquemas de datos en <strong><a href=\"https:\/\/aprenderbigdata.com\/json\/\">formato JSON<\/a><\/strong> o <a href=\"https:\/\/aprenderbigdata.com\/apache-avro\/\"><strong>Avro<\/strong><\/a> para Kafka sobre un repositorio centralizado. Permite asegurar que los datos se insertan en el topic correspondiente con un esquema concreto para cumplir la especificaci\u00f3n y el entendimiento entre productores y consumidores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sirve una API REST para acceder al hist\u00f3rico versionado de los esquemas. Adem\u00e1s, tambi\u00e9n proporciona los serializadores  y deserializadores de datos necesarios para los clientes de Kafka.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Schema Registry nos facilita <strong>evolucionar el esquema<\/strong> y validar que no hay problemas de compatibilidad. Por ejemplo, para que los nuevos consumidores puedan leer registros antiguos, pero que los consumidores antiguos se deban actualizar para deserializar los nuevos mensajes. Si quisi\u00e9ramos a\u00f1adir un nuevo campo obligatorio a un esquema, deber\u00edamos establecer un valor por defecto en este nuevo campo para que los nuevos consumidores puedan usar este esquema al leer registros antiguos. <\/p>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"995\" height=\"393\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/diagrama-schema-registry-kafka.jpg\" alt=\"Diagrama Schema Registry en Apache Kafka\" class=\"wp-image-3955\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/diagrama-schema-registry-kafka.jpg 995w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/diagrama-schema-registry-kafka-300x118.jpg 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/diagrama-schema-registry-kafka-768x303.jpg 768w\" sizes=\"(max-width: 995px) 100vw, 995px\" \/><figcaption class=\"wp-element-caption\">Diagrama Schema Registry en Apache Kafka<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Schema Registry tiene una interfaz de usuario (UI) que permite registrar nuevos esquemas, visualizarlos y comparar sus versiones de una forma sencilla.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"zookeeper-en-apache-kafka\"><span class=\"ez-toc-section\" id=\"Zookeeper-en-Apache-Kafka\"><\/span>Zookeeper en Apache Kafka<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/aprenderbigdata.com\/zookeeper\/\">Apache Zookeeper<\/a><\/strong> es un servicio que ayuda a gestionar sistemas distribuidos como, por ejemplo, Apache Kafka. Ofrece a sistemas externos capacidades de <strong>almacenamiento clave-valor, sincronizaci\u00f3n y registro de nombres<\/strong>, entre otros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zookeeper proporciona a Kafka alta disponibilidad. Entre los nodos de Zookeeper, se elige uno como l\u00edder. El resto de nodos del cl\u00faster se denominan seguidores, y uno de ellos es elegido como nuevo l\u00edder en el caso de que el l\u00edder actual tenga un fallo. Generalmente, los clusters de Zookeeper se despliegan con 3 \u00f3 5 nodos.<\/p>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"alignright size-medium\"><a href=\"https:\/\/aprenderbigdata.com\/zookeeper\/\"><img decoding=\"async\" width=\"300\" height=\"162\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/Apache-ZooKeeper-Logo-300x162.png\" alt=\"Zookeeper logo\" class=\"wp-image-1623\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/Apache-ZooKeeper-Logo-300x162.png 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/Apache-ZooKeeper-Logo-1024x554.png 1024w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/Apache-ZooKeeper-Logo-768x415.png 768w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/Apache-ZooKeeper-Logo.png 1200w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Para gestionar un cl\u00faster de Kafka, <strong>Zookeeper almacena informaci\u00f3n del estado del cl\u00faster<\/strong>: detalles de los topics como el nombre, las particiones, las r\u00e9plicas y los grupos de consumidores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el momento en el que Zookeeper detecta que uno de los brokers de Kafka est\u00e1 ca\u00eddo, realiza las siguientes acciones:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Elige un nuevo broker para tomar el lugar del broker ca\u00eddo.<\/li>\n\n\n\n<li>Actualiza los metadatos para la distribuci\u00f3n de carga de los productores y los consumidores para que no exista p\u00e9rdida de servicio.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Tras estas acciones, se pueden volver a escribir y leer mensajes con normalidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el a\u00f1o 2019 se propone <a href=\"https:\/\/cwiki.apache.org\/confluence\/display\/KAFKA\/KIP-500%3A+Replace+ZooKeeper+with+a+Self-Managed+Metadata+Quorum\">eliminar la dependencia de Kafka con Zookeeper<\/a> reemplaz\u00e1ndola con un mecanismo interno. Con la versi\u00f3n 2.8 (2021) se introduce la versi\u00f3n beta de <a href=\"https:\/\/developer.confluent.io\/learn\/kraft\/\">KRaft<\/a> como mecanismo de consenso para el protocolo de quorum. Kafka 3.3 marca este mecanismo como listo para producci\u00f3n. A partir de la versi\u00f3n 3.5 se proporciona un mecanismo de migraci\u00f3n y se marca el soporte a Zookeeper como deprecado. Lee m\u00e1s en el art\u00edculo de <strong><a href=\"https:\/\/aprenderbigdata.com\/kafka-sin-zookeeper\/\">Kafka sin Zookeeper<\/a><\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ventajas-de-apache-kafka\"><span class=\"ez-toc-section\" id=\"Ventajas-de-Apache-Kafka\"><\/span>Ventajas de Apache Kafka<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En esta secci\u00f3n, enumerar\u00e9 las ventajas m\u00e1s importantes de Apache Kafka:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Permite desacoplar aplicaciones entre s\u00ed (\u00fatil en arquitecturas de microservicios)<\/li>\n\n\n\n<li>Sistema escalable horizontalmente, tolerante a fallos y con baja latencia (Big Data)<\/li>\n\n\n\n<li>Absorci\u00f3n de picos de carga que pueden ocurrir en el sistema<\/li>\n\n\n\n<li>Permite construir aplicaciones que reaccionan a eventos en tiempo real<\/li>\n\n\n\n<li>Referencia en la industria, lo usan las empresas m\u00e1s grandes del mundo<\/li>\n\n\n\n<li>Garant\u00edas de entrega de mensajes exactly-once (exactamente una vez)<\/li>\n\n\n\n<li>Transacciones a partir de Kafka 0.11<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"desventajas-de-apache-kafka\"><span class=\"ez-toc-section\" id=\"Desventajas-de-Apache-Kafka\"><\/span>Desventajas de Apache Kafka<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kafka tambi\u00e9n tiene algunas desventajas, que enumerar\u00e9 en esta secci\u00f3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kafka no es una tecnolog\u00eda que est\u00e9 dise\u00f1ada para manejar mensajes muy grandes (+ 1MB)<\/li>\n\n\n\n<li>Pocas opciones de monitorizaci\u00f3n potentes<\/li>\n\n\n\n<li>Opciones en Stream processing m\u00e1s limitadas que otras opciones como <a href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-flink\/\"><strong>Apache Flink<\/strong><\/a><\/li>\n\n\n\n<li>Operaciones de rebalanceo de datos en particiones a veces necesarias, lo que impacta en el rendimiento del sistema<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"apache-kafka-como-base-de-datos\"><span class=\"ez-toc-section\" id=\"Apache-Kafka-como-base-de-datos\"><\/span>Apache Kafka como base de datos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si estamos dudando sobre si es posible reemplazar una base de datos con Apache Kafka, debemos tener en cuenta que cada base de datos del mercado tiene unas caracter\u00edsticas diferentes. Para cada caso de uso se debe elegir la base de datos adecuada que cumpla con nuestros requisitos. Debemos plantear preguntas como cu\u00e1nto tiempo almacenar los datos, qu\u00e9 estructura deben tener o qu\u00e9 tipo de consultas y con qu\u00e9 frecuencia se van a realizar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque Kafka se puede usar como una base de datos y proporciona <strong>garant\u00edas<\/strong> <strong>ACID<\/strong>, funciona de forma diferente a otras bases de datos. Puede proporcionar una base de almacenamiento persistente para los eventos y consultas pero no reemplaza a otras bases de datos, y debemos tratarla como una herramienta complementaria. La pregunta que debemos hacernos es: \u00bfnecesitamos otro almacenamiento de datos adicional a Kafka en nuestro sistema?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kafka no proporciona un <strong>lenguaje de consulta<\/strong> similar a otras bases de datos, sino que sirve toda una API de consumidores y productores de mensajes con mucha m\u00e1s funcionalidad. Las aplicaciones clientes son sistemas distribuidos que consultan, procesan y almacenan flujos de datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un concepto que debemos evaluar al crear aplicaciones de Kafka es que pueden contener el estado o ser aplicaciones sin estado. Esta decisi\u00f3n es fundamental al crear <strong><a href=\"https:\/\/aprenderbigdata.com\/microservicios\/\">microservicios<\/a><\/strong>, ya que podemos mantener el estado de la aplicaci\u00f3n directamente en Kafka, lo que puede resultar una mejor opci\u00f3n o m\u00e1s sencilla que gestionar el estado en la aplicaci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"como-elegir-la-distribucion-de-apache-kafka-adecuada\"><span class=\"ez-toc-section\" id=\"Como-elegir-la-distribucion-de-Apache-Kafka-adecuada\"><\/span>C\u00f3mo elegir la distribuci\u00f3n de Apache Kafka adecuada<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kafka se distribuye en varias alternativas comerciales que ofrecen soporte empresarial. Las m\u00e1s importantes son Confluent, Cloudera, Red Hat y Amazon MSK. Antes de tomar una decisi\u00f3n debemos analizar las opciones que existen y la forma en la que vamos a operar el servicio ya que todos estos vendors tienen sus fortalezas y debilidades. Por supuesto, siempre est\u00e1 la opci\u00f3n de usar la versi\u00f3n open source.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"confluent\"><span class=\"ez-toc-section\" id=\"Confluent\"><\/span><strong>Confluent<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enfocado totalmente a Streaming de Eventos de la mano de los creadores de Apache Kafka, donde son el principal contribuidor<\/li>\n\n\n\n<li>Soporte de la \u00faltima versi\u00f3n disponible de Kafka<\/li>\n\n\n\n<li>Ecosistema de conectores, seguridad y herramientas completo<\/li>\n\n\n\n<li>Integraci\u00f3n con proveedores cloud (AWS, Azure, GCP) <\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"alignright size-medium\"><a href=\"https:\/\/aprenderbigdata.com\/introduccion-cloudera-hadoop\/\"><img decoding=\"async\" width=\"300\" height=\"74\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/cloudera-logo-300x74.png\" alt=\"Cloudera logo\" class=\"wp-image-1629\" style=\"width:183px;height:auto\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/cloudera-logo-300x74.png 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/cloudera-logo.png 368w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"cloudera\"><span class=\"ez-toc-section\" id=\"Cloudera\"><\/span>Cloudera<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enfocado a anal\u00edtica Big Data y lagos de datos con una plataforma que soporta numerosos frameworks de almacenamiento y procesamiento<\/li>\n\n\n\n<li>Apache Kafka forma parte de la plataforma, y est\u00e1 integrado completamente con las otras tecnolog\u00edas soportando arquitecturas h\u00edbridas <\/li>\n\n\n\n<li>Integraci\u00f3n con proveedores cloud (AWS, Azure, GCP)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"red-hat-ibm\"><span class=\"ez-toc-section\" id=\"Red-Hat-%E2%80%93-IBM\"><\/span>Red Hat &#8211; IBM<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enfocado en infraestructura PaaS Cloud con Linux y Kubernetes con Openshift Streams<\/li>\n\n\n\n<li>Soporte a frameworks open source y activos en la comunidad (CDC con <strong><a href=\"https:\/\/aprenderbigdata.com\/debezium\/\">Debezium<\/a><\/strong>)<\/li>\n\n\n\n<li>IBM tambi\u00e9n comercializa la plataforma de Confluent como parte de IBM Cloud Pak<\/li>\n\n\n\n<li>Integraci\u00f3n con proveedores cloud (AWS, Azure, GCP)<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"alignright size-medium\"><a href=\"https:\/\/aprenderbigdata.com\/aws-conceptos-basicos\/\"><img decoding=\"async\" width=\"300\" height=\"180\" src=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/AWS-logo-300x180.png\" alt=\"AWS Amazon Web Services Logo\" class=\"wp-image-2895\" style=\"width:130px\" srcset=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/AWS-logo-300x180.png 300w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/AWS-logo-1024x613.png 1024w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/AWS-logo-768x460.png 768w, https:\/\/aprenderbigdata.com\/wp-content\/uploads\/AWS-logo.png 1280w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"amazon-msk-aws\"><span class=\"ez-toc-section\" id=\"Amazon-MSK-AWS\"><\/span>Amazon MSK (AWS)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enfocado en infraestructura cloud como servicio manejado e integrado con S3, Lambda o Kinesis<\/li>\n\n\n\n<li>No tiene algunas caracter\u00edsticas como Kafka Connect o Kafka Streams<\/li>\n\n\n\n<li>Solo disponible en AWS y el software que ejecuta por debajo (Apache Kafka) se excluye del soporte<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s de estas alternativas, podemos encontrar <strong><a href=\"https:\/\/aprenderbigdata.com\/event-hubs\/\">Azure Event Hubs<\/a><\/strong>, la soluci\u00f3n SaaS que soporta el protocolo de Kafka. Tiene limitaciones alrededor del soporte a la API de Kafka y no soporta todos los conectores o Schema Registry.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"formacion\"><span class=\"ez-toc-section\" id=\"Curso-de-Apache-Kafka-Siguientes-Pasos\"><\/span>Curso de Apache Kafka: Siguientes Pasos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si quieres aprender Apache Kafka a fondo y convertirte en experto, no dudes en invertir en tu <strong>formaci\u00f3n<\/strong> a largo plazo. Para ello, te dejo mi propio curso en espa\u00f1ol en el que aprender\u00e1s desde cero: con partes te\u00f3ricas y partes pr\u00e1cticas. Es un curso fundamental para quien desee implementar sistemas escalables de procesamiento de datos en tiempo real.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">\u00a1Aqu\u00ed tienes un enlace con el cup\u00f3n!<\/p>\n\n\n\n<p class=\"has-text-align-center has-medium-font-size wp-block-paragraph\"><strong><a href=\"https:\/\/go.hotmart.com\/V75475436D?SCK=INTROKAFKA\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Comienza con Kafka: Curso de Apache Kafka desde Cero<\/a><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<p class=\"responsive-video-wrap clr\"><iframe title=\"Introduccion a Apache Kafka desde Cero\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/tkdJP6gkRWI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Aprende en estos art\u00edculos sobre otros br\u00f3kers de mensajer\u00eda populares:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/aprenderbigdata.com\/kafka-vs-rabbitmq\/\"><strong>RabbitMQ<\/strong> (comparativa con Apache Kafka)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/aprenderbigdata.com\/apache-pulsar\/\"><strong>Apache Pulsar<\/strong> (comparativa con Apache Kafka)<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n, <a href=\"https:\/\/aprenderbigdata.com\/apache-kafka-comandos\/\">con este tutorial, podr\u00e1s levantar un peque\u00f1o cl\u00faster de Apache Kafka y aprender los <strong>comandos b\u00e1sicos<\/strong><\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"preguntas-frecuentes-de-apache-kafka-faq\"><span class=\"ez-toc-section\" id=\"Preguntas-frecuentes-de-Apache-Kafka-%E2%80%93-FAQ\"><\/span>Preguntas frecuentes de Apache Kafka &#8211; FAQ<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h3><span class=\"ez-toc-section\" id=\"%C2%BFPara-que-se-usa-Apache-Kafka\"><\/span>\u00bfPara qu\u00e9 se usa Apache Kafka?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\" id=\"apache-kafka-se-usa-como-sistema-de-intermediacion-de-mensajes-entre-aplicaciones-varios-suscriptores-y-publicadores-externos-pueden-leer-los-mensajes-almacenados-en-kafka-y-de-esta-forma-abstraer-la-complejidad-asociada-al-tratamiento-de-mensajes-de-la-aplicacion\">Apache Kafka se usa como sistema de intermediaci\u00f3n de mensajes entre aplicaciones. Varios suscriptores y publicadores externos pueden leer los mensajes almacenados en Kafka y de esta forma abstraer la complejidad asociada al tratamiento de mensajes de la aplicaci\u00f3n.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h3><span class=\"ez-toc-section\" id=\"%C2%BFEs-Apache-Kafka-una-base-de-datos\"><\/span>\u00bfEs Apache Kafka una base de datos?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\" id=\"kafka-es-un-sistema-distribuido-que-trata-los-datos-como-un-flujo-continuo-aunque-cada-vez-se-agrega-mayor-funcionalidad-sobre-este-sistema-no-es-una-base-de-datos-corriente-ni-tiene-los-mismos-usos-ni-aplicaciones-podemos-considerar-kafka-como-una-herramienta-que-puede-complementar-a-una-base-de-datos\">Kafka es un sistema distribuido que trata los datos como un flujo continuo. Aunque cada vez se agrega mayor funcionalidad sobre este sistema no es una base de datos corriente ni tiene los mismos usos ni aplicaciones. Podemos considerar Kafka como una herramienta que puede complementar a una base de datos.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h3><span class=\"ez-toc-section\" id=\"%C2%BFQue-es-un-broker-de-Kafka\"><\/span>\u00bfQu\u00e9 es un br\u00f3ker de Kafka?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\" id=\"un-broker-de-kafka-es-un-nodo-con-kafka-instalado-que-forma-parte-del-cluster-permite-a-los-suscriptores-leer-mensajes-y-se-comunica-con-los-demas-brokers-para-sincronizarse-tambien-puede-usar-apache-zookeeper\">Un br\u00f3ker de Kafka es un nodo con Kafka instalado que forma parte del cl\u00faster. Permite a los suscriptores leer mensajes y se comunica con los dem\u00e1s br\u00f3kers. Para sincronizarse tambi\u00e9n puede usar Apache Zookeeper.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h3><span class=\"ez-toc-section\" id=\"%C2%BFQue-ventajas-tiene-Apache-Kafka\"><\/span>\u00bfQu\u00e9 ventajas tiene Apache Kafka?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\" id=\"apache-kafka-permite-desacoplar-aplicaciones-entre-si-que-necesiten-comunicarse-mediante-paso-de-mensajes-en-tiempo-real-es-un-sistema-escalable-y-con-baja-latencia-lo-que-hace-una-solucion-ideal-para-tratar-grandes-cantidades-de-datos-en-sistemas-big-data\">Apache Kafka permite desacoplar aplicaciones entre s\u00ed que necesiten comunicarse mediante paso de mensajes en tiempo real. Es un sistema escalable y con baja latencia, lo que hace una soluci\u00f3n ideal para tratar grandes cantidades de datos en sistemas Big Data.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h3><span class=\"ez-toc-section\" id=\"%C2%BFEs-Kafka-un-sistema-asincrono\"><\/span>\u00bfEs Kafka un sistema as\u00edncrono?<span class=\"ez-toc-section-end\"><\/span><\/h3>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p class=\"wp-block-paragraph\" id=\"kafka-permite-implementar-a-las-aplicaciones-un-sistema-de-comunicacion-asincrono-con-el-patron-publicador-subscriptor-los-productores-de-mensajes-no-deben-esperar-a-que-se-consuman-para-continuar-sus-operaciones\">Kafka permite implementar a las aplicaciones un sistema de comunicaci\u00f3n as\u00edncrono con el patr\u00f3n publicador-subscriptor. Los productores de mensajes no deben esperar a que se consuman para continuar sus operaciones.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\n<script type=\"application\/ld+json\">\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"FAQPage\",\n\t\t\"mainEntity\": [\n\t\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"\u00bfPara qu\u00e9 se usa Apache Kafka?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Apache Kafka se usa como sistema de intermediaci\u00f3n de mensajes entre aplicaciones. Varios suscriptores y publicadores externos pueden leer los mensajes almacenados en Kafka y de esta forma abstraer la complejidad asociada al tratamiento de mensajes de la aplicaci\u00f3n.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"\u00bfEs Apache Kafka una base de datos?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Kafka es un sistema distribuido que trata los datos como un flujo continuo. Aunque cada vez se agrega mayor funcionalidad sobre este sistema no es una base de datos corriente ni tiene los mismos usos ni aplicaciones. Podemos considerar Kafka como una herramienta que puede complementar a una base de datos.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"\u00bfQu\u00e9 es un br\u00f3ker de Kafka?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Un br\u00f3ker de Kafka es un nodo con Kafka instalado que forma parte del cl\u00faster. Permite a los suscriptores leer mensajes y se comunica con los dem\u00e1s br\u00f3kers. Para sincronizarse tambi\u00e9n puede usar Apache Zookeeper.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"\u00bfQu\u00e9 ventajas tiene Apache Kafka?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Apache Kafka permite desacoplar aplicaciones entre s\u00ed que necesiten comunicarse mediante paso de mensajes en tiempo real. Es un sistema escalable y con baja latencia, lo que hace una soluci\u00f3n ideal para tratar grandes cantidades de datos en sistemas Big Data.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"\u00bfEs Kafka un sistema as\u00edncrono?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Kafka permite implementar a las aplicaciones un sistema de comunicaci\u00f3n as\u00edncrono con el patr\u00f3n publicador-subscriptor. Los productores de mensajes no deben esperar a que se consuman para continuar sus operaciones.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t]\n\t}\n<\/script>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group newsletter-re\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<!-- Begin Brevo Form -->\n<!-- START - We recommend to place the below code in head tag of your website html  -->\n<style>\n  @font-face {\n    font-display: block;\n    font-family: Roboto;\n  }\n\n  @font-face {\n    font-display: fallback;\n    font-family: Roboto;\n    font-weight: 600;\n  }\n\n  @font-face {\n    font-display: fallback;\n    font-family: Roboto;\n    font-weight: 700;\n  }\n\n  #sib-container input:-ms-input-placeholder {\n    text-align: left;\n    font-family: \"Helvetica\", sans-serif;\n    color: #c0ccda;\n  }\n\n  #sib-container input::placeholder {\n    text-align: left;\n    font-family: \"Helvetica\", sans-serif;\n    color: #c0ccda;\n  }\n\n  #sib-container textarea::placeholder {\n    text-align: left;\n    font-family: \"Helvetica\", sans-serif;\n    color: #c0ccda;\n  }\n<\/style>\n<link rel=\"stylesheet\" href=\"https:\/\/sibforms.com\/forms\/end-form\/build\/sib-styles.css\">\n<!--  END - We recommend to place the above code in head tag of your website html -->\n\n<!-- START - We recommend to place the below code where you want the form in your website html  -->\n<div class=\"sib-form\" style=\"text-align: center;\n         background-color: #ffffff;                                 \">\n  <div id=\"sib-form-container\" class=\"sib-form-container\">\n    <div id=\"error-message\" class=\"sib-form-message-panel\" style=\"font-size:16px; text-align:left; font-family:&quot;Helvetica&quot;, sans-serif; color:#661d1d; background-color:#ffeded; border-radius:3px; border-color:#ff4949;max-width:600px;\">\n      <div class=\"sib-form-message-panel__text sib-form-message-panel__text--center\">\n        <svg viewBox=\"0 0 512 512\" class=\"sib-icon sib-notification__icon\">\n          <path d=\"M256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm-11.49 120h22.979c6.823 0 12.274 5.682 11.99 12.5l-7 168c-.268 6.428-5.556 11.5-11.99 11.5h-8.979c-6.433 0-11.722-5.073-11.99-11.5l-7-168c-.283-6.818 5.167-12.5 11.99-12.5zM256 340c-15.464 0-28 12.536-28 28s12.536 28 28 28 28-12.536 28-28-12.536-28-28-28z\" \/>\n        <\/svg>\n        <span class=\"sib-form-message-panel__inner-text\">\n                          Tu suscripci\u00f3n no ha podido guardarse. Por favor vuelve a intentarlo.\n                      <\/span>\n      <\/div>\n    <\/div>\n    <div><\/div>\n    <div id=\"success-message\" class=\"sib-form-message-panel\" style=\"font-size:16px; text-align:left; font-family:&quot;Helvetica&quot;, sans-serif; color:#085229; background-color:#e7faf0; border-radius:3px; border-color:#13ce66;max-width:600px;\">\n      <div class=\"sib-form-message-panel__text sib-form-message-panel__text--center\">\n        <svg viewBox=\"0 0 512 512\" class=\"sib-icon sib-notification__icon\">\n          <path d=\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 464c-118.664 0-216-96.055-216-216 0-118.663 96.055-216 216-216 118.664 0 216 96.055 216 216 0 118.663-96.055 216-216 216zm141.63-274.961L217.15 376.071c-4.705 4.667-12.303 4.637-16.97-.068l-85.878-86.572c-4.667-4.705-4.637-12.303.068-16.97l8.52-8.451c4.705-4.667 12.303-4.637 16.97.068l68.976 69.533 163.441-162.13c4.705-4.667 12.303-4.637 16.97.068l8.451 8.52c4.668 4.705 4.637 12.303-.068 16.97z\" \/>\n        <\/svg>\n        <span class=\"sib-form-message-panel__inner-text\">\n                          Gracias por suscribirte \ud83d\ude42\n                      <\/span>\n      <\/div>\n    <\/div>\n    <div><\/div>\n    <div id=\"sib-container\" class=\"sib-container--large sib-container--vertical\" style=\"text-align:center; background-color:rgba(249,250,251,1); max-width:600px; border-radius:7px; border-width:1px; border-color:#C0CCD9; border-style:solid; direction:ltr\">\n      <form id=\"sib-form\" method=\"POST\" action=\"https:\/\/45b7c589.sibforms.com\/serve\/MUIFAJUHX74hhdn6yVc3sScAj33FFxSgDh2U31jEyO8bXeQmVM0dKSOmYifgH3XNPOP2aDViwVBs9N6McSTxHJEzEx-3nNpomebkJUWOi7_tG2VHKFLj6EeyMplUrpj_VNPjl6BSC9WBN_uOLGnlnyKzUoB1RDaXbz1sakGbox07jJ2toYKwtJ0EyDjJmvQkZmF7Wk4iEcUMBwrU\" data-type=\"subscription\">\n        <div style=\"padding: 8px 0;\">\n          <div class=\"sib-form-block\" style=\"font-size:25px; text-align:center; font-weight:700; font-family:&quot;Helvetica&quot;, sans-serif; color:#3C4858; background-color:transparent; text-align:center\">\n            <p><strong>\u00danete a la Comunidad Big Data<\/strong><\/p>\n          <\/div>\n        <\/div>\n        <div style=\"padding: 8px 0;\">\n          <div class=\"sib-form-block\" style=\"font-size:16px; text-align:center; font-family:&quot;Helvetica&quot;, sans-serif; color:#3C4858; background-color:transparent; text-align:center\">\n            <div class=\"sib-text-form-block\">\n              <p>Tu conocimiento es la herramienta m\u00e1s potente. Suscr\u00edbete a la lista de correo para mantenerte al d\u00eda con los art\u00edculos m\u00e1s \u00fatiles para tu carrera en Big Data y Cloud. Sin spam, nunca.<\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div style=\"padding: 8px 0;\">\n          <div class=\"sib-input sib-form-block\">\n            <div class=\"form__entry entry_block\">\n              <div class=\"form__label-row \">\n\n                <div class=\"entry__field\">\n                  <input class=\"input \" type=\"text\" id=\"EMAIL\" name=\"EMAIL\" autocomplete=\"off\" placeholder=\"TU EMAIL\" data-required=\"true\" required \/>\n                <\/div>\n              <\/div>\n\n              <label class=\"entry__error entry__error--primary\" style=\"font-size:16px; text-align:left; font-family:&quot;Helvetica&quot;, sans-serif; color:#661d1d; background-color:#ffeded; border-radius:3px; border-color:#ff4949;\">\n              <\/label>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div style=\"padding: 8px 0;\">\n          <div class=\"sib-optin sib-form-block\" data-required=\"true\">\n            <div class=\"form__entry entry_mcq\">\n              <div class=\"form__label-row \">\n                <div class=\"entry__choice\" style=\"text-align:center;\">\n                  <label>\n                    <input type=\"checkbox\" class=\"input_replaced\" value=\"1\" id=\"OPT_IN\" name=\"OPT_IN\" required \/>\n                    <span class=\"checkbox checkbox_tick_positive\"\n            style=\"margin-left:\"\n            ><\/span><span style=\"font-size:13px; text-align:left; font-family:&quot;Helvetica&quot;, sans-serif; color:#3C4858; background-color:transparent;\"><p>Acepto la <a href=\"https:\/\/aprenderbigdata.com\/privacidad\/\" target=\"_blank\" rel=\"noopener\">pol\u00edtica de privacidad<\/a><\/p><span data-required=\"*\" style=\"display: inline;\" class=\"entry__label entry__label_optin\"><\/span><\/span> <\/label>\n                <\/div>\n              <\/div>\n              <label class=\"entry__error entry__error--primary\" style=\"font-size:16px; text-align:left; font-family:&quot;Helvetica&quot;, sans-serif; color:#661d1d; background-color:#ffeded; border-radius:3px; border-color:#ff4949;\">\n              <\/label>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div style=\"padding: 8px 0;\">\n          <div class=\"sib-form-block\" style=\"text-align: center\">\n            <button class=\"sib-form-block__button sib-form-block__button-with-loader\" style=\"font-size:13px; text-align:center; font-weight:700; font-family:&quot;Helvetica&quot;, sans-serif; color:#FFFFFF; background-color:#13aff0; border-radius:3px; border-width:0px;\" form=\"sib-form\" type=\"submit\">\n              <svg class=\"icon clickable__icon progress-indicator__icon sib-hide-loader-icon\" viewBox=\"0 0 512 512\">\n                <path d=\"M460.116 373.846l-20.823-12.022c-5.541-3.199-7.54-10.159-4.663-15.874 30.137-59.886 28.343-131.652-5.386-189.946-33.641-58.394-94.896-95.833-161.827-99.676C261.028 55.961 256 50.751 256 44.352V20.309c0-6.904 5.808-12.337 12.703-11.982 83.556 4.306 160.163 50.864 202.11 123.677 42.063 72.696 44.079 162.316 6.031 236.832-3.14 6.148-10.75 8.461-16.728 5.01z\" \/>\n              <\/svg>\n              \u00a1SUSCR\u00cdBEME GRATIS!\n            <\/button>\n          <\/div>\n        <\/div>\n\n        <input type=\"text\" name=\"email_address_check\" value=\"\" class=\"input--hidden\">\n        <input type=\"hidden\" name=\"locale\" value=\"en\">\n      <\/form>\n    <\/div>\n  <\/div>\n<\/div>\n<!-- END - We recommend to place the below code where you want the form in your website html  -->\n\n<!-- START - We recommend to place the below code in footer or bottom of your website html  -->\n<script>\n  window.REQUIRED_CODE_ERROR_MESSAGE = 'Please choose a country code';\n  window.LOCALE = 'en';\n  window.EMAIL_INVALID_MESSAGE = window.SMS_INVALID_MESSAGE = \"La informaci\u00f3n proporcionada no es v\u00e1lida. Por favor, revisa el formato y vuelve a intentarlo.\";\n\n  window.REQUIRED_ERROR_MESSAGE = \"Este campo no puede estar vac\u00edo. \";\n\n  window.GENERIC_INVALID_MESSAGE = \"La informaci\u00f3n proporcionada no es v\u00e1lida. Por favor, revisa el formato y vuelve a intentarlo.\";\n\n  window.translation = {\n    common: {\n      selectedList: '{quantity} list selected',\n      selectedLists: '{quantity} lists selected'\n    }\n  };\n\n  var AUTOHIDE = Boolean(1);\n<\/script>\n<script defer src=\"https:\/\/sibforms.com\/forms\/end-form\/build\/main.js\"><\/script>\n\n<!-- END - We recommend to place the above code in footer or bottom of your website html  -->\n<!-- End Brevo Form -->\n\n\n\n<\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Apache Kafka es un sistema de mensajer\u00eda basado en el modelo publicador\/subscriptor. Tiene las siguientes caracter\u00edsticas.<\/p>\n","protected":false},"author":1,"featured_media":3962,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"ocs-posts-sidebar","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[],"footnotes":""},"categories":[8,1],"tags":[12,173,10,9],"class_list":["post-170","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-herramientas-big-data","category-top","tag-faq","tag-hotmart","tag-top","tag-video","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Apache Kafka: Introducci\u00f3n 2026 - Aprender BIG DATA<\/title>\n<meta name=\"description\" content=\"\u2192 Introducci\u00f3n a Apache Kafka: Aprende en qu\u00e9 consiste el sistema de mensajer\u00eda para Big Data basado en el modelo publicador\/subscriptor\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache Kafka: Introducci\u00f3n 2026 - Aprender BIG DATA\" \/>\n<meta property=\"og:description\" content=\"\u2192 Introducci\u00f3n a Apache Kafka: Aprende en qu\u00e9 consiste el sistema de mensajer\u00eda para Big Data basado en el modelo publicador\/subscriptor\" \/>\n<meta property=\"og:url\" content=\"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/\" \/>\n<meta property=\"og:site_name\" content=\"Aprender BIG DATA\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-16T18:33:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-12T13:59:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Oscar Fernandez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@oscarfmdc\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oscar Fernandez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"30 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/\"},\"author\":{\"name\":\"Oscar Fernandez\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#\\\/schema\\\/person\\\/321e79dd84000e4b71b0dac998d5c707\"},\"headline\":\"Apache Kafka: Introducci\u00f3n\",\"datePublished\":\"2019-02-16T18:33:51+00:00\",\"dateModified\":\"2025-05-12T13:59:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/\"},\"wordCount\":2939,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/aprenderbigdata.com\\\/wp-content\\\/uploads\\\/introduccion-apache-kafka.jpg\",\"keywords\":[\"FAQ\",\"Hotmart\",\"top\",\"Video\"],\"articleSection\":[\"Herramientas Big Data\",\"Top\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/\",\"url\":\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/\",\"name\":\"Apache Kafka: Introducci\u00f3n 2026 - Aprender BIG DATA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/aprenderbigdata.com\\\/wp-content\\\/uploads\\\/introduccion-apache-kafka.jpg\",\"datePublished\":\"2019-02-16T18:33:51+00:00\",\"dateModified\":\"2025-05-12T13:59:40+00:00\",\"description\":\"\u2192 Introducci\u00f3n a Apache Kafka: Aprende en qu\u00e9 consiste el sistema de mensajer\u00eda para Big Data basado en el modelo publicador\\\/subscriptor\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/#primaryimage\",\"url\":\"https:\\\/\\\/aprenderbigdata.com\\\/wp-content\\\/uploads\\\/introduccion-apache-kafka.jpg\",\"contentUrl\":\"https:\\\/\\\/aprenderbigdata.com\\\/wp-content\\\/uploads\\\/introduccion-apache-kafka.jpg\",\"width\":1280,\"height\":720,\"caption\":\"\u00bfQu\u00e9 es Apache Kafka? Introducci\u00f3n\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/introduccion-apache-kafka\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/aprenderbigdata.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apache Kafka: Introducci\u00f3n\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#website\",\"url\":\"https:\\\/\\\/aprenderbigdata.com\\\/\",\"name\":\"Aprender BIG DATA\",\"description\":\"Aprende Big Data desde cero\",\"publisher\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/aprenderbigdata.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#organization\",\"name\":\"AprenderBigData\",\"url\":\"https:\\\/\\\/aprenderbigdata.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/aprenderbigdata.com\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/cropped-favicon.png\",\"contentUrl\":\"https:\\\/\\\/aprenderbigdata.com\\\/wp-content\\\/uploads\\\/2019\\\/08\\\/cropped-favicon.png\",\"width\":512,\"height\":512,\"caption\":\"AprenderBigData\"},\"image\":{\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/aprenderbigdata.com\\\/#\\\/schema\\\/person\\\/321e79dd84000e4b71b0dac998d5c707\",\"name\":\"Oscar Fernandez\",\"description\":\"Arquitecto de Datos con m\u00e1s de 10 a\u00f1os de experiencia en el sector del Big Data. Autor de cursos de formaci\u00f3n en tecnolog\u00edas Big Data, Cloud y Streaming completados por m\u00e1s de 7000 alumnos en Udemy y otras plataformas. Miembro de la Apache Software Foundation desde 2019.\",\"sameAs\":[\"instagram.com\\\/oscarfmdc\",\"linkedin.com\\\/in\\\/oscarfmdc\\\/\",\"https:\\\/\\\/x.com\\\/oscarfmdc\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCBqzJ1QI3jkkIYXLL9gVpWQ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Apache Kafka: Introducci\u00f3n 2026 - Aprender BIG DATA","description":"\u2192 Introducci\u00f3n a Apache Kafka: Aprende en qu\u00e9 consiste el sistema de mensajer\u00eda para Big Data basado en el modelo publicador\/subscriptor","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:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/","og_locale":"es_ES","og_type":"article","og_title":"Apache Kafka: Introducci\u00f3n 2026 - Aprender BIG DATA","og_description":"\u2192 Introducci\u00f3n a Apache Kafka: Aprende en qu\u00e9 consiste el sistema de mensajer\u00eda para Big Data basado en el modelo publicador\/subscriptor","og_url":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/","og_site_name":"Aprender BIG DATA","article_published_time":"2019-02-16T18:33:51+00:00","article_modified_time":"2025-05-12T13:59:40+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka.jpg","type":"image\/jpeg"}],"author":"Oscar Fernandez","twitter_card":"summary_large_image","twitter_image":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka.jpg","twitter_creator":"@oscarfmdc","twitter_misc":{"Escrito por":"Oscar Fernandez","Tiempo de lectura":"30 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#article","isPartOf":{"@id":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/"},"author":{"name":"Oscar Fernandez","@id":"https:\/\/aprenderbigdata.com\/#\/schema\/person\/321e79dd84000e4b71b0dac998d5c707"},"headline":"Apache Kafka: Introducci\u00f3n","datePublished":"2019-02-16T18:33:51+00:00","dateModified":"2025-05-12T13:59:40+00:00","mainEntityOfPage":{"@id":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/"},"wordCount":2939,"commentCount":0,"publisher":{"@id":"https:\/\/aprenderbigdata.com\/#organization"},"image":{"@id":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#primaryimage"},"thumbnailUrl":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka.jpg","keywords":["FAQ","Hotmart","top","Video"],"articleSection":["Herramientas Big Data","Top"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/","url":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/","name":"Apache Kafka: Introducci\u00f3n 2026 - Aprender BIG DATA","isPartOf":{"@id":"https:\/\/aprenderbigdata.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#primaryimage"},"image":{"@id":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#primaryimage"},"thumbnailUrl":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka.jpg","datePublished":"2019-02-16T18:33:51+00:00","dateModified":"2025-05-12T13:59:40+00:00","description":"\u2192 Introducci\u00f3n a Apache Kafka: Aprende en qu\u00e9 consiste el sistema de mensajer\u00eda para Big Data basado en el modelo publicador\/subscriptor","breadcrumb":{"@id":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#primaryimage","url":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka.jpg","contentUrl":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/introduccion-apache-kafka.jpg","width":1280,"height":720,"caption":"\u00bfQu\u00e9 es Apache Kafka? Introducci\u00f3n"},{"@type":"BreadcrumbList","@id":"https:\/\/aprenderbigdata.com\/introduccion-apache-kafka\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/aprenderbigdata.com\/"},{"@type":"ListItem","position":2,"name":"Apache Kafka: Introducci\u00f3n"}]},{"@type":"WebSite","@id":"https:\/\/aprenderbigdata.com\/#website","url":"https:\/\/aprenderbigdata.com\/","name":"Aprender BIG DATA","description":"Aprende Big Data desde cero","publisher":{"@id":"https:\/\/aprenderbigdata.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/aprenderbigdata.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/aprenderbigdata.com\/#organization","name":"AprenderBigData","url":"https:\/\/aprenderbigdata.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/aprenderbigdata.com\/#\/schema\/logo\/image\/","url":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/2019\/08\/cropped-favicon.png","contentUrl":"https:\/\/aprenderbigdata.com\/wp-content\/uploads\/2019\/08\/cropped-favicon.png","width":512,"height":512,"caption":"AprenderBigData"},"image":{"@id":"https:\/\/aprenderbigdata.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/aprenderbigdata.com\/#\/schema\/person\/321e79dd84000e4b71b0dac998d5c707","name":"Oscar Fernandez","description":"Arquitecto de Datos con m\u00e1s de 10 a\u00f1os de experiencia en el sector del Big Data. Autor de cursos de formaci\u00f3n en tecnolog\u00edas Big Data, Cloud y Streaming completados por m\u00e1s de 7000 alumnos en Udemy y otras plataformas. Miembro de la Apache Software Foundation desde 2019.","sameAs":["instagram.com\/oscarfmdc","linkedin.com\/in\/oscarfmdc\/","https:\/\/x.com\/oscarfmdc","https:\/\/www.youtube.com\/channel\/UCBqzJ1QI3jkkIYXLL9gVpWQ"]}]}},"_links":{"self":[{"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/posts\/170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/comments?post=170"}],"version-history":[{"count":2,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/posts\/170\/revisions"}],"predecessor-version":[{"id":13900,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/posts\/170\/revisions\/13900"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/media\/3962"}],"wp:attachment":[{"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/media?parent=170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/categories?post=170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aprenderbigdata.com\/wp-json\/wp\/v2\/tags?post=170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}