Apache Kafka

Un article de Wikipédia, l'encyclopédie libre.
Apache Kafka
Description de l'image Apache kafka.svg.

Informations
Créateur Neha Narkhede (en)Voir et modifier les données sur Wikidata
Développé par Apache Software Foundation et LinkedInVoir et modifier les données sur Wikidata
Première version [1]Voir et modifier les données sur Wikidata
Dernière version 3.7.0 ()[2]Voir et modifier les données sur Wikidata
Dépôt github.com/apache/kafka et gitbox.apache.org/repos/asf/kafka.gitVoir et modifier les données sur Wikidata
Écrit en Java et ScalaVoir et modifier les données sur Wikidata
Système d'exploitation MultiplateformeVoir et modifier les données sur Wikidata
Type Message-oriented middlewareVoir et modifier les données sur Wikidata
Licence Licence Apache version 2.0 et licence ApacheVoir et modifier les données sur Wikidata
Site web kafka.apache.orgVoir et modifier les données sur Wikidata

Apache Kafka est un projet à code source ouvert d'agent de messages développé par l'Apache Software Foundation et écrit en Scala. Le projet vise à fournir un système unifié, en temps réel à latence faible pour la manipulation de flux de données. Sa conception est fortement influencée par les journaux de transactions[3].

Histoire[modifier | modifier le code]

Apache Kafka a été initialement développé par LinkedIn et son code a été ouvert début 2011[4]. Le projet intègre l'incubateur Apache Incubator le . En , plusieurs ingénieurs créateurs de Kafka chez LinkedIn créent une nouvelle société nommée Confluent[5] avec pour axe le logiciel Kafka.

Les entreprises qui utilisent Kafka[modifier | modifier le code]

Voici une liste d'entreprises notables qui ont utilisé ou utilisent Kafka :

Applications[modifier | modifier le code]

Kafka est utilisé principalement pour la mise en place de « data pipeline » temps réel mais ce n'est pas sa seule application possible dans le monde de l'entreprise. Il est aussi de plus en plus utilisé dans les architectures micro services comme système d’échange, dans la supervision temps réel et dans l’IOT[18]. Kafka apporte sa capacité à ingérer et diffuser une grande quantité de données, couplé à un framework de data stream processing, il permet le traitement complexe et en temps réel des données.

Architecture[modifier | modifier le code]

Kafka comprend cinq API de base :

  • Producer API permet aux applications d'envoyer des flux de données aux topics du cluster Kafka.
  • Consumer API permet aux applications de lire des flux de données à partir des topics du cluster Kafka.
  • Streams API permet de transformer des flux de données en topic de sortie.
  • Connect API permet d'implémenter des connecteurs qui récupèrent les données d'un système source ou d'une application vers Kafka ou qui poussent de Kafka vers une application.
  • AdminClient API permet de gérer et d'inspecter les topics, les brokers, et les autres objets Kafka.

Kafka Streams[modifier | modifier le code]

Kafka Streams est une bibliothèque client pour la construction d'applications et de microservices, où les données d'entrée et de sortie sont stockées dans des clusters Kafka.

Kafka Connect[modifier | modifier le code]

Notes et références[modifier | modifier le code]

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Apache Kafka » (voir la liste des auteurs).
  1. « https://github.com/kafka-dev/kafka/commit/e8540b6b090fad4cbe5bfc9b78be35bc3b1ad2b6 » (consulté le )
  2. « Release 3.7.0 », (consulté le )
  3. The Log: What every software engineer should know about real-time data's unifying abstraction, LinkedIn Engineering Blog, accessed 5 May 2014
  4. (en-US) « Open-sourcing Kafka, LinkedIn's distributed message queue », sur blog.linkedin.com (consulté le )
  5. Primack, Dan.
  6. Doyung Yoon.
  7. Cheolsoo Park and Ashwin Shankar.
  8. Josh Baer.
  9. "Stream Processing in Uber".
  10. "Shopify - Sarama is a Go library for Apache Kafka".
  11. "Exchange Market Data Streaming with Kafka".
  12. "Présentation de l'utilisation de Kafka pour gérer les éventements sur le site Meetic"
  13. (en) « - OVHcloud Blog », sur OVHcloud Blog (consulté le ).
  14. (en) « Apache Kafka », sur Apache Kafka (consulté le ).
  15. https://medium.com/leboncoin-engineering-blog/cooling-down-hot-data-from-kafka-to-athena-5918a628bd98
  16. (en) « Criteo Kafka Meetup : key learnings », sur Criteo Engineering, (consulté le ).
  17. "Michelin utilise Confluent pour gérer ses stocks en temps réel à grande échelle".
  18. « Kafka, pierre angulaire des architectures Fast Data ? », sur Nexworld, (consulté le )

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]