BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Apache Kafka - Un autre type de système orienté message

Apache Kafka - Un autre type de système orienté message

Apache a publié Kafka 0.8, la première version majeure de Kafka depuis que le projet est devenu un projet de top niveau de la Fondation Logicielle Apache. Apache Kafka est un système orienté message de type publication-souscription implémenté comme système de traces transactionnel distribué, adapté pour la consommation de messages en-ligne et hors ligne. Il s'agit d'un système orienté message développé à l'origine à LinkedIn pour la collection et la distribution de volumes élevés d'évènements et de données de trace à latence faible. La dernière version comprend la réplication intra-cluster et le support de multiples répertoires de données. Le traitement des requêtes est maintenant asynchrone, implémenté via une réserve secondaire de processus de gestion de requêtes. Les fichiers de trace peuvent être permutés par âge, et les niveaux de trace peuvent être valorisés dynamiquement par JMX. Un outil de test de performance a été ajouté, pour aider à traiter les inquiétudes et à chercher les améliorations concernant les performances.

Kafka est un service de commit de traces distribué, partitionné et répliqué. Les producteurs publient des messages dans des sujets Kafka, les consommateurs s'abonnent à ces sujets et consomment les messages. Un serveur dans un cluster Kafka est appelé un intermédiaire. Pour chaque sujet, le cluster Kafka maintient une partition pour la montée en charge, le parallélisme et la résistance aux pannes. Chaque partition est une séquence ordonnée et immutable de messages ajoutée en continu à la trace des commits. Chaque message dans les partitions se voit affecté d'un identifiant numérique séquentiel appelé la remédiation.

La remédiation est contrôlée par le consommateur. Un consommateur typique traitera le message suivant dans la liste, bien qu'il puisse consommer les messages dans n'importe quel ordre, car le cluster Kafka conserve tous les messages publiés pour une période de temps configurable. Cela rend les consommateurs très économiques, car ils vont et viennent sans beaucoup d'impact sur le cluster, et autorisent les consommateurs déconnectés comme les clusters Hadoop. Les producteurs sont capables de choisir le sujet, et la partition au sein du sujet, dans lequel publier le message. Les consommateurs s'auto-affectent un nom de groupe de consommateur, et chaque message est distribué à un consommateur dans chaque groupe de consommateurs abonnés. Si tous les consommateurs ont des groupes différents, alors les messages sont diffusés à chaque consommateur.

Kafka peut être utilisé comme un middleware de message traditionnel. Il offre un débit élevé et dispose de capacités de partionnement natif, de réplication et de résistance aux pannes, ce qui en fait une bonne solution pour les applications de traitement de messages de grande ampleur. Kafka peut également être employé pour le suivi de sites web à fort volume. L'activité du site peut être publiée et traitée en temps réel, ou chargée dans système d'entrepôt de données Hadoop ou hors-ligne. Kafka peut également être utilisé comme solution d'agrégation de traces. Au lieu de travailler avec des fichiers, les traces peuvent être traitées comme des flux de messages.

Kafka est utilisé à LinkedIn et il gère plus de 10 milliards d'écritures par jour avec une charge soutenue qui avoisine 172 000 messages par seconde. Il y a une utilisation massive de support multi-abonnés, à la fois d'applications internes et externes qui utilisent les données. Le ratio est d'environ 5,5 messages consommés pour chaque message produit, ce qui résulte en un total quotidien de plus de 55 milliards de messages distribués à des consommateurs en temps réel. 367 sujets recouvrent à la fois les activités utilisateurs et les données opérationnelles, le plus gros ajoutant une moyenne de 92 Go par jour de messages compressés par lot. Les messages sont conservés pendant 7 jours, et dans leur intégralité, ils font 9,5 To en moyenne. En plus de consommateurs en direct, il existe de nombreux clusters Hadoop qui consomment des salves parallèles à haut débit dans le cadre du chargement de données hors ligne.

Pour débuter, visitez la page de la documentation d'Apache Kafka où vous pourrez en apprendre plus et télécharger Kafka. Il y a également un article de LinkedIn intitulé Construire le Pipeline d'Activité de Données en Temps Réel à LinkedIn, qui décrit pourquoi Kafka a été fabriqué et les facteurs qui ont contribué à sa conception.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT