Apache Kafka

Apache Kafka
Información general
Tipo de programa message-oriented middleware
Autor Neha Narkhede
Desarrollador
Lanzamiento inicial 7 de noviembre de 2010
Licencia
Información técnica
Programado en
Versiones
Última versión estable 3.9.06 de noviembre de 2024
Lanzamientos
Java Message Service y Advanced Message Queuing Protocol
Apache Kafka
Enlaces

Apache Kafka es un proyecto de intermediación de mensajes de código abierto desarrollado por LinkedIn y donado a la Apache Software Foundation escrito en Java y Scala. El proyecto tiene como objetivo proporcionar una plataforma unificada, de alto rendimiento y de baja latencia para la manipulación en tiempo real de fuentes de datos. Puede verse como una cola de mensajes, bajo el patrón publicación-suscripción, masivamente escalable concebida como un registro de transacciones distribuidas,[3]​ lo que la vuelve atractiva para las infraestructuras de aplicaciones empresariales.

El diseño tiene gran influencia de los registros de transacción.[4]

Historia

Apache Kafka fue originalmente desarrollado por la empresa Linkedin, la cual lo publicó como software libre a principios de 2011. En octubre de 2012 superó la etapa de incubación de la fundación Apache. En noviembre de 2014, varios ingenieros que trabajaron en el proyecto Kafka de Linkedin crearon una nueva empresa llamada Confluent enfocada en Kafka.[5]

Empresas que utilizan Kafka

La siguiente es una lista de empresas conocidas que utilizan o han utilizado Kafka:

Rendimiento de Kafka

Debido a su capacidad de escalar masivamente y a su uso en estructuras a nivel de aplicaciones empresariales, el seguimiento del rendimiento de Kafka se ha convertido en un tema cada vez más importante. Actualmente existen varias plataformas de código abierto, como Burrow de Linkedin, y plataformas de pago como Datadog,[3]​ que permiten hacer el seguimiento del desempeño de Kafka.

Arquitectura

Visión general de Kafka

Kafka almacena mensajes de clave-valor que provienen de un número arbitrario de procesos llamados "productores". Los datos pueden dividirse en diferentes "particiones" dentro de diferentes "temas". Dentro de una partición, los mensajes se ordenan estrictamente por sus posiciones (la posición de un mensaje dentro de una partición), y se indexan y almacenan junto con una marca de tiempo. Otros procesos denominados "consumidores" pueden leer los mensajes de las particiones. Para el procesamiento de flujos, Kafka ofrece la API de flujos (Streams) que permite escribir aplicaciones Java que consumen datos de Kafka y escriben los resultados de vuelta a Kafka. Apache Kafka también funciona con sistemas de procesamiento de flujos externos como Apache Apex, Apache Beam, Apache Flink, Apache Spark, Apache Storm y Apache NiFi.

Kafka se ejecuta en un clúster de uno o más servidores (llamados brokers) y las particiones de todos los temas se distribuyen entre los distintos nodos del clúster. Además, las particiones se replican en varios brokers. Esta arquitectura permite a Kafka entregar flujos masivos de mensajes de forma tolerante a fallos y le ha permitido sustituir algunos de los sistemas de mensajería convencionales como Java Message Service (JMS), Advanced Message Queuing Protocol (AMQP), etc.

Desde la versión 0.11.0.0, Kafka ofrece escrituras transaccionales, que proporcionan un procesamiento de flujos de una sola vez utilizando la API de flujos (streams).

Kafka soporta dos tipos de temas: Regulares y compactados. Los temas regulares pueden configurarse con un tiempo de retención o un límite de espacio. Si hay registros que son más antiguos que el tiempo de retención especificado o si se supera el límite de espacio para una partición, Kafka puede eliminar los datos más antiguos para liberar espacio de almacenamiento. Por defecto, los temas se configuran con un tiempo de retención de 7 días, pero también es posible almacenar los datos indefinidamente.

En el caso de los temas compactados, los registros no caducan en función de los límites de tiempo o espacio. En su lugar, Kafka trata los mensajes posteriores como actualizaciones de mensajes más antiguos que tengan la misma clave y garantiza que nunca se borrará el último mensaje de una clave. Sin embargo, los usuarios pueden eliminar los mensajes por completo escribiendo un mensaje denominado tombstone con valor nulo para una clave específica.

Interfaces de Kafka

Hay cinco interfaces principales en Kafka:

  • Producer API: Permite a una aplicación publicar flujos de registros.
  • Consumer API: Permite a una aplicación suscribirse a temas y procesar flujos de registros.
  • Connector API: Interfaz de importación/exportación para la conexión con sistemas de terceros.
  • Streams API: Biblioteca Java para el procesamiento de flujos de datos, convirtiendo los flujos de entrada en salida y produciendo el resultado.
  • Admin API: Se utiliza para gestionar los temas de Kafka, los brokers y otros objetos de Kafka.

Las interfaces de consumidor y productor se basan en el protocolo de mensajes Kafka y están desacopladas de la funcionalidad principal de Kafka. El protocolo de mensajes real de Kafka es un protocolo binario y, por lo tanto, permite que los clientes consumidores y productores se desarrollen en cualquier lenguaje de programación. Por lo tanto, Kafka no está vinculado al ecosistema JVM. En la Wiki de Apache Kafka se mantiene una lista de clientes no-Java disponibles.

API de conexión

Kafka Connect (o Connect API) proporciona una interfaz para cargar/exportar datos desde/a sistemas de terceros. Está disponible desde la versión 0.9.0.0 y se basa en la API de consumidores y productores. La API de Connect define la interfaz de programación que debe implementarse para construir un conector personalizado. Ya existen muchos conectores comerciales y de código abierto que pueden utilizarse. Sin embargo, Apache Kafka por sí mismo no proporciona ningún conector listo para la producción.

API de Streams

Kafka Streams (o Streams API) es una biblioteca Java para el procesamiento de flujos y está disponible a partir de la versión 0.10.0.0. La biblioteca permite desarrollar programas de procesamiento de flujos con estado que son escalables, flexibles y tolerantes a fallos.

Operador Kafka para Kubernetes

En agosto de 2019, se publicó un gestor para construir una plataforma Kafka nativa de la nube con Kubernetes.

Permite automatizar el despliegue de pods de los componentes del ecosistema Kafka (ZooKeeper, Kafka Connect, KSQL, Rest Proxy), monitorizar los SLA a través de Confluent Control Center o Prometheus, escalar Kafka de forma flexible, y gestionar las interrupciones y automatizar las actualizaciones continuas.

Compatibilidad de versiones

Hasta la versión 0.9.x, los brokers de Kafka sólo son compatibles con los clientes más antiguos.

A partir de la versión 0.10.0.0 de Kafka, los brokers son compatibles con versiones de clientes más recientes, aunque éstos sólo podrán utilizar las características que el broker soporte.

Para la API de Streams, la compatibilidad total comienza con la versión 0.10.1.0, por tanto una aplicación de Kafka Streams 0.10.1.0 no es compatible con versiones de brokers anteriores a 0.10.0.

Véase también

Referencias

  1. «Mirror of Apache Kafka at GitHub]». github.com. Consultado el 6 de marzo de 2017. 
  2. «Open-sourcing Kafka, LinkedIn's distributed message queue». Consultado el 27 de octubre de 2016. 
  3. a b «Monitoring Kafka performance metrics». Datadog Engineering Blog. Consultado el 9 de junio de 2016. 
  4. «The Log: What every software engineer should know about real-time data's unifying abstraction». LinkedIn Engineering Blog. Consultado el 9 de junio de 2016. 
  5. Primack, Dan. «LinkedIn engineers spin out to launch 'Kafka' startup Confluent». fortune.com. Consultado el 9 de junio de 2016. 
  6. «OpenSOC: An Open Commitment to Security». Cisco blog. Consultado el 3 de febrero de 2016. 
  7. Doyung Yoon. «S2Graph : A Large-Scale Graph Database with HBase». 
  8. «OpenSOC: Kafka Ecosystem on Walmart’s Cloud». Medium. Consultado el 15 de enero de 2019. 
  9. Cheolsoo Park and Ashwin Shankar. «Netflix: Integrating Spark at Petabyte Scale». 
  10. Shibi Sudhakaran of PayPal. «PayPal: Creating a Central Data Backbone: Couchbase Server to Kafka to Hadoop and Back (talk at Couchbase Connect 2015)». Couchbase. Archivado desde el original el 17 de septiembre de 2016. Consultado el 3 de marzo de 2016. 
  11. a b Josh Baer. «How Apache Drives Spotify's Music Recommendations». 
  12. «Stream Processing in Uber». InfoQ. Consultado el 6 de diciembre de 2015. 
  13. «Shopify - Sarama is a Go library for Apache Kafka». 
  14. «Exchange Market Data Streaming with Kafka». Archivado desde el original el 27 de enero de 2016. Consultado el 9 de junio de 2016. 
  15. George, Sam (5 de diciembre de 2016). «Kafka Connect for Azure IoT Hub» (html). Microsoft (en inglés). Archivado desde el original el 13 de julio de 2017. Consultado el 12 de marzo de 2019. 

Read other articles:

Stasiun Uedahara上田原駅Stasiun Uedahara, Oktober 2009LokasiUedahara, Ueda-shi, Nagano-ken 386-1102 JepangKoordinat36°23′25.85″N 138°13′17.8″E / 36.3905139°N 138.221611°E / 36.3905139; 138.221611OperatorUeda Electric RailwayJalur■ Bessho LineLetak2.9 km dari UedaJumlah peron1 peron pulauJumlah jalur2Informasi lainStatusStaf hanya beberapa jamKode stasiunBE05Situs webSitus web resmiSejarahDibuka17 Juni 1921PenumpangFY2015917 harian Lokasi pada pet...

 

Linderniaceae Torenia fournieri Klasifikasi ilmiah Kerajaan: Plantae Divisi: Magnoliophyta Kelas: Magnoliopsida Ordo: Lamiales Famili: Linderniaceae Genera lihat teks. Linderniaceae adalah salah satu famili anggota tumbuhan berbunga. Menurut Sistem klasifikasi APG II suku ini termasuk dalam ordo Lamiales. Wikimedia Commons memiliki media mengenai Linderniaceae. Pengidentifikasi takson Wikidata: Q648186 Wikispecies: Linderniaceae APNI: 214631 ATRF: Linderniaceae EoL: 6360531 EPPO: 1LDRF Flora...

 

PemberitahuanTemplat ini mendeteksi bahwa artikel bahasa ini masih belum dinilai kualitasnya oleh ProyekWiki Bahasa dan ProyekWiki terkait dengan subjek. Perhatian: untuk penilai, halaman pembicaraan artikel ini telah diisi sehingga penilaian akan berkonflik dengan isi sebelumnya. Harap salin kode dibawah ini sebelum menilai. {{PW Bahasa|importance=|class=}} Terjadi [[false positive]]? Silakan laporkan kesalahan ini. 18.21, Sabtu, 23 Maret, 2024 (UTC) • hapus singgahan Seban...

العلاقات الإكوادورية البريطانية الإكوادور المملكة المتحدة   الإكوادور   المملكة المتحدة تعديل مصدري - تعديل   العلاقات الإكوادورية البريطانية هي العلاقات الثنائية التي تجمع بين الإكوادور والمملكة المتحدة.[1][2][3][4][5] مقارنة بين البلدين هذ...

 

  وزارة الاقتصاد والمالية وزارة الاقتصاد والمالية (المغرب)شعار الوزارة تفاصيل الوكالة الحكومية البلد المغرب  تأسست 7 ديسمبر 1955،  و26 أكتوبر 1956  المركز الرباط،  المغرب الإحداثيات 34°00′33″N 6°49′35″W / 34.0091°N 6.82635°W / 34.0091; -6.82635  الإدارة الوزراء المسؤول�...

 

.km

.kmDiperkenalkan8 Juni 1998Jenis TLDTLD kode negara InternetStatusAktifRegistriComores Telecom, registrasi dioperasikan oleh VeriSignSponsorComores TelecomPemakaian yang diinginkanEntitas yang terhubung dengan  KomoroPemakaian aktualTak banyak digunakanStrukturRegistrasi dilakukan di tingkat keduaDokumenTerms and conditions (French; MS Word doc)Kebijakan sengketaUDRPSitus webDomaine.km.km adalah top-level domain kode negara Internet untuk Komoro. lbsRanah tingkat teratas kode negara (ccT...

1958 1969 Élection présidentielle française de 1965 5 décembre 1965 (1er tour)19 décembre 1965 (2d tour) Corps électoral et résultats Population 48 952 282 Inscrits au 1er tour 28 910 581 Votants au 1er tour 24 502 916   84,75 % Votes exprimés au 1er tour 24 254 556 Blancs et nuls au 1er tour 248 360 Inscrits au 2d tour 28 902 704 Votants au 2d tour 24 371 647   84,32 % Votes exprimés ...

 

Haumea beralih ke halaman ini. Untuk kegunaan lain, lihat Haumea (disambiguasi). Haumea Haumea dan dua bulannyaPenemuanDitemukan olehBrown et al.; Ortiz et al. (tak ada yang resmi)Tanggal penemuan28 Desember 2004 (Brown et al.); Juli 2005 (Ortiz et al.)PenamaanPenamaan(136108) HaumeaNama alternatif2003 EL61Kategori planet minorplanet katai, plutoid, TNO (dihilangkan dari cubewano)[1][2]resonansi 12:7 orde kelima[3]Ciri-ciri orbit[4]Epos 30 Novemb...

 

Italian football club Football clubClodienseFull nameClodiense Società Sportiva Dilettantistica s.r.l.Founded2011GroundStadio Aldo e Dino Ballarin,Chioggia, ItalyCapacity3,622ChairmanIvano Boscolo BieloManagerAntonio AndreucciLeagueSerie D/C2017–1812th Home colours Away colours Clodiense Società Sportiva Dilettantistica S.r.l. is an Italian association football club located in Chioggia, Veneto. It plays in Serie D. History From A.S.D. Clodiense to Clodiense S.S.D. The club was founded on ...

Portuguese footballer In this Portuguese name, the first or maternal family name is Baía and the second or paternal family name is Pinto. Tiago Pinto Pinto (left) in action for Rio Ave in 2011Personal informationFull name Tiago Miguel Baía Pinto[1]Date of birth (1988-02-01) 1 February 1988 (age 36)[1]Place of birth Porto, Portugal[1]Height 1.77 m (5 ft 10 in)[1]Position(s) Left-backYouth career1998–2000 Benfica2000–2007 Sporting CP...

 

Cet article est une ébauche concernant la science. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Tong DizhouTong Dizhou en 1955.BiographieNaissance 28 mai 1902Yinxian (en)Décès 30 mars 1979 (à 76 ans)Beijing Hospital (d)Nationalité chinoiseFormation Université FudanUniversité Libre de BruxellesUniversité libre de Bruxelles (en)Activité BiologisteFamille Yintaidi Tong family (d)Fratrie Dide Tong (...

 

v · mŒuvres conservées au musée de Normandie Antiquité romaine Déesse-mère de Saint-Aubin-sur-Mer Seau de Giberville Stèle de Vostrus Trépied de Giberville Trésor de Saint-Germain-de-Varreville Trésor de Tourouvre Moyen Âge Trésor d'Airan Liste de musées en France  Documentation de palette[créer] [purger] Ceci est la documentation du modèle {{Palette Œuvres conservées au musée de Normandie}}. Syntaxe L’utilisation de cette palette se fait par l�...

Duta Besar Mauritania untuk IndonesiaPetahanaWeddady Ould Sidi Haibasejak 2024Situs webambarimjakarta.org/en/ Berikut adalah daftar duta besar Republik Islam Mauritania untuk Republik Indonesia. Nama Kredensial Selesai tugas Ref. Yahya Ngam 4 Oktober 2016 [1][cat. 1] Mohammed At Thalib Zain Al Abidin 10 Juni 2020 [2] Houssein Sidi Abdellah 1 September 2021 [3] Weddady Ould Sidi Haiba 15 Februari 2024 Petahana [4] Catatan ^ Berkedudukan di Tokyo. Li...

 

Giovanni Giuseppe Aurelio Gasti Giovanni Giuseppe Aurelio Gasti (Castellazzo Bormida, 30 gennaio 1869 – Roma, 11 aprile 1939[1]) è stato un criminologo e questore di polizia italiano nonché l'inventore del metodo di catalogazione delle impronte digitali. «Tra tutti gli angoli della terra questo è quello che mi sorride di più.» (Iscrizione vicino alla sua casa[2]) Indice 1 Biografia 2 Metodo Gasti 3 Opere 4 Onorificenze 5 Note 6 Bibliografia 7 Voci correlate 8 Collegame...

 

City in Lunda Norte Province, AngolaDundo Dundo-ChitatoCityDundoLocation in AngolaCoordinates: 7°22′48.4″S 20°50′06.2″E / 7.380111°S 20.835056°E / -7.380111; 20.835056Country AngolaProvinceLunda Norte ProvinceMunicipalityChitatoCommuneLuachimoPopulation (2014) • Total177,604Time zoneUTC+1 (WAT)ClimateAw Dundo, or Dundo-Chitato, is a former mining town, with a population of 177,604 (2014),[1] now a city and the provincial capita...

عشوائيةمعلومات عامةصنف فرعي من ارتياب تسبب في excitement (en) النقيض determinism (en) انتظام تعديل - تعديل مصدري - تعديل ويكي بيانات العشوائية أو العشاوة[1] (بالإنجليزية: Randomness)‏ كلمة مشتقة من فعل عَشُوَ وعَشَا عَشْوًا;[2] وتعني من ساء بصره بالليل والنهار أو من أبصر بالنهار ولم يبص�...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada November 2022. Ken Rex McElroy (1 Juni 1934 – 10 Juli 1981) adalah warga Skidmore, Nodaway County, Missouri, Amerika Serikat. Ia dikenal sebagai tukang rusuh kota.[1] Kasus pembunuhannya yang belum terselesaikan sampai sekarang menjadi perhatian internasio...

 

Japanese manga series by Kozueko Morimoto and its adaptations GokusenManga volume 1 cover, featuring Kumiko YamaguchiごくせんGenreComedy[1][2]Martial arts[2]Yakuza[1][2] MangaWritten byKozueko MorimotoPublished byShueishaImprintYou ComicsMagazineYouDemographicJoseiOriginal run2000 – 2007Volumes15 Television dramaDirected byTōya SatōTarō ŌtaniNaoharu Takahashi (S1)Tomoaki Watanabe (S2)Manami Yamashita (S3)Produced byShōshun...

La Copenhague Cup est une course hippique de trot attelé se déroulant au mois de mai (au mois de juin avant 2014) sur l'hippodrome de Charlottenlund à Copenhague au Danemark. C'est une course internationale de Groupe I réservée aux chevaux de 3 ans et plus. Il s'agit de la course danoise de trot la plus célèbre. C'était une étape du Grand Circuit européen de trot, avant sa suppression en 2012. Elle se court sur la distance de 2 011 mètres, départ à l'autostart et l'allo...

 

Evora redirects here. For other uses of Évora and Evora, see Évora (disambiguation). Municipality in Alentejo, PortugalÉvoraMunicipality Top: Évora Cathedral; Roman Temple of Évora; Graça Church; middle: Giraldo Square; bottom: Royal Palace of Évora gardens; University of Évora; Rua do Cano. FlagCoat of armsCoordinates: 38°34′N 07°54′W / 38.567°N 7.900°W / 38.567; -7.900Country PortugalRegionAlentejoIntermunic. comm.Alentejo CentralDistrictÉvoraPa...