Utilisation de Connexion au flux pour Apache Kafka

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 8 minutes de lecture
  • Connectez votre environnement Apache Kafka à votre ServiceNow instance avec Connexion au flux for Apache Kafka.

    Apache Kafka est une plateforme distribuée de streaming d’événements qui fournit un moyen unifié d’échanger des données sur plusieurs systèmes. Connexion au flux pour Apache Kafka relie votre environnement Kafka à votre ServiceNow instance, ce qui vous permet de diffuser des données entre votre instance et vos systèmes externes.

    Remarque :
    Connexion au flux nécessite un abonnement et un Workflow Data FabricConnexion au flux abonnement. Pour plus d'informations, consultez https://www.servicenow.com/now-platform/workflow-data-fabric.html.

    Avantages

    • Publiez et traitez les événements Kafka à grande échelle. Publiez des événements dans votre environnement Kafka à partir de votre ServiceNow instance et consommez des événements Kafka à partir de vos systèmes externes à un volume élevé avec une faible latence.

    • Créez des flux qui produisent et consomment des événements Kafka. Connexion au flux est intégré à Studio de workflow, fournissant un moyen low-code de publier et de traiter des messages Kafka.
    • Importez des données à partir de votre environnement Kafka et traitez-les à l’aide de vos configurations existantes de moteur de transformation robuste (RTE) ou de carte de transformation.
    • Configurez un consommateur qui utilise vos propres scripts pour traiter les données d’une rubrique Kafka.
    • Surveillez les performances de vos consommateurs grâce à des rapports détaillés sur les statistiques et les mesures de performance.

    Composants

    Connexion au flux comporte les composants suivants.

    Producteurs

    Un producteur publie des événements dans un environnement Kafka. Connexion au flux a deux producteurs.

    • Étape du producteur Kafka Studio de workflow
    • ProducerV2 API
    Consommateurs

    Un consommateur lit et traite les événements à partir d’un environnement Kafka. Connexion au flux a plusieurs consommateurs.

    • Déclencheur de message Kafka dans Studio de workflow
    • Consommateur d’extraction de chargement de transformation (ETL)
    • Consommateur de carte de transformation
    • Consommateur de script
    Rubriques et espaces de noms des rubriques

    Les événements sont organisés et stockés dans des rubriques. Une rubrique stocke les événements du même type. Les rubriques sont partitionnées. Les événements ont une clé. Les événements avec la même clé sont stockés dans la même partition.

    Les rubriques sont liées à un espace de noms de rubrique. Vous pouvez utiliser des espaces de noms pour organiser les rubriques de manière logique. Par exemple, vous pouvez regrouper des rubriques en fonction de leur cluster Kafka. Vous pouvez également utiliser des espaces de noms pour configurer quels domaines peuvent accéder à quelles rubriques sur une instance séparée par domaine. Pour plus d'informations, consultez Managing namespaces and topics in Hermes.

    Abonnements

    Un abonnement est un enregistrement associé à un consommateur. Il stocke des informations de configuration sur le consommateur, telles que le nom de la rubrique Kafka à partir de laquelle utiliser les messages et le nombre de partitions de la rubrique. L’enregistrement de l’abonnement est créé lorsqu’un flux Kafka est activé.

    Chaque enregistrement d’abonnement comporte plusieurs mesures qui vous permettent d’afficher les performances du consommateur lisant à partir de la rubrique. Pour plus d'informations, consultez Affichage des abonnements et des statistiques Kafka.

    Groupes de partitions

    Un groupe de partitions est un ensemble de partitions de rubriques. Par exemple, si une rubrique comporte six partitions, elles peuvent être divisées en trois groupes de partitions, avec deux partitions dans chaque groupe.

    Tâche de consommateur Kafka

    Une tâche qui vérifie régulièrement Hermes pour détecter tout nouvel événement dans une rubrique. La tâche choisit un groupe de partitions libre et récupère son abonnement. L’abonnement donne le nom de la rubrique et la tâche vérifie les partitions pour les messages de cette rubrique.

    Flux Kafka

    Un flux Kafka est un enregistrement qui définit le flux de données pour un consommateur. Si vous utilisez le déclencheur Message Kafka dans Studio de workflow, le flux Kafka est automatiquement créé pour vous. Si vous utilisez un autre consommateur, vous devez en créer un manuellement.

    Pour lier votre environnement Kafka à votre ServiceNow instance, Connexion au flux utilise le fichier Service de messagerie Hermes . Cela Service de messagerie Hermes permet à votre instance de produire et de consommer de grands volumes d’événements Kafka. Il gère le flux de données entre votre environnement Kafka et votre instance. Pour plus d’informations, consultez Service de messagerie Hermes.

    Le diagramme suivant montre certains des composants clés de .Connexion au flux

    Figure 1. Vue d’ensemble de Connexion au flux
    Diagramme montrant une vue d’ensemble des composants de Connexion au flux.

    Connexion au flux et Studio de workflow

    Créez des flux qui produisent et consomment des événements Kafka avec Connexion au flux et Studio de workflow. Connexion au flux dispose d’un déclencheur de flux pour la consommation d’événements Kafka et d’une étape d’action pour les produire.

    Utilisez le déclencheur de message Kafka pour créer des flux qui traitent les événements Kafka. Vous pouvez créer un flux qui consomme des données de Kafka et les insère dans une table, ou utiliser des spokes pour communiquer les données à des environnements tiers.

    Le déclencheur est activé lorsque le flux est activé. Une fois activé, le déclencheur démarre le flux chaque fois qu’il y a un message dans la rubrique Kafka spécifiée. Lorsque vous utilisez le déclencheur de message Kafka, vous n’avez pas besoin de créer un enregistrement de flux ou d’abonnement Kafka. Le système crée automatiquement les deux lorsque le flux est activé. Les messages sont lus à partir de la rubrique tant que le flux est actif.

    Utilisez l’étape Créateur Kafka pour créer des actions qui publient des événements dans une rubrique de votre environnement Kafka. Par exemple, vous pouvez utiliser cette étape pour créer un message sur une mise à jour d’un incident dans ServiceNow, puis transmettre le message à une rubrique de votre environnement Kafka.

    Connexion au flux d’alerte

    Recevez des alertes et des notifications d’alerte pour Connexion au flux les intégrations. Connexion au flux Utilise une surveillance active et planifiée pour détecter des événements dans plusieurs composants. Si un problème est détecté, le système crée une alerte, consigne un message dans le Connexion au flux journal et envoie une notification d’alerte. Pour plus de détails, voir Connexion au flux d’alerte.

    Prise en charge des messages au format Avro

    Importez et créez des schémas pour envoyer et recevoir des messages au Apache format Avro. L’utilisation d’un format Avro peut réduire la taille de la charge utile et simplifier votre intégration à votre instance Kafka locale.

    Vous pouvez importer des schémas Avro directement à partir du registre Confluent, ou vous pouvez créer vos propres schémas à l’aide d’un fichier JSON ou d’une chaîne au format JSON. Les schémas sont stockés et ServiceNow permettent à vos producteurs et consommateurs de convertir des messages en texte brut au format Avro et inversement. Pour plus de détails, voir Gestion des schémas dans Connexion au flux.

    Consommateurs ETL, de carte de transformation et de script

    Importez des données à partir de votre environnement Kafka à l’aide de vos configurations RTE ou de carte de transformation existantes. Les consommateurs ETL (Extract Transform Load) et Transform Map simplifient vos importations de données en fournissant un moyen efficace de prendre une charge utile d’un message Kafka, de transformer les données et d’insérer ou de mettre à jour un enregistrement dans une table. Vous pouvez passer d’une importation de données planifiée à une importation à l’aide de Connexion au flux et traiter les données avec les mêmes configurations.

    Vous pouvez également utiliser Script Consumer (Consommateur de script) pour traiter les données de votre environnement Kafka. Le consommateur de script est destiné aux cas d’utilisation plus avancés, par exemple lorsque les données du message ne sont pas structurées ou lorsqu’il nécessite des recherches de données à l’aide de code.

    Lorsque vous Configurer un consommateur ETL (Extract Transform Load), Configurer un consommateur de carte de transformation ou Configurer un consommateur de script, vous devez Créer un flux Kafkaégalement .

    ProducerV2 API

    Publiez des événements dans une rubrique Kafka avec l’API ProducerV2.

    Connexion au flux Réplication de messages

    Vous pouvez répliquer des données entre votre environnement Kafka et ServiceNow la Connexion au flux réplication de messages.

    Connexion au flux La réplication de messages vous permet de configurer et de gérer les réplications de messages directement à partir de votre ServiceNow instance. Il utilise un Serveur MID pour exécuter les réplications de données, vous n’avez donc pas besoin de configurer ou d’héberger des services de réplication supplémentaires. Il simplifie également la configuration de la réplication des messages en générant automatiquement les certificats requis.

    Pour plus d'informations, consultez Réplication de message de connexion au flux.

    Messages non traités et non remis

    Si un message ne peut pas être remis, il est stocké dans la table Messages non remis Kafka [sys_kafka_undelivered_messages]. Un travail planifié, Kafka Producer Retry, lit régulièrement cette table et tente de renvoyer tous les messages.

    Si un lot de messages ne peut pas être traité car il a expiré, il est stocké dans la table Messages non traités Kafka [sys_kafka_unprocessed_messages]. Le délai d’expiration d’un lot de messages peut être défini avec la com.glide.kafka_consumer.timeout propriété. La valeur par défaut est de 60 secondes. Cette table est une table pivotée, elle nettoie donc automatiquement les enregistrements.

    Formats de compression des producteurs

    Spécifiez un format de compression pour Connexion au flux les producteurs avec la com.glide.kafka_producer.compression_type propriété système. Il prend en charge les valeurs suivantes :
    • AUCUN
    • GZIP
    • LZ4
    Cette propriété n’apparaît pas par défaut dans la table Propriétés système [sys_properties], elle doit donc être ajoutée manuellement. Cette propriété définit le format de compression pour tous les Connexion au flux producteurs.
    Remarque :
    Pour consommer un message compressé, il doit avoir été compressé à l’aide de GZIP ou LZ4.

    Séparation en domaines

    Utilisez Connexion au flux des espaces de noms de rubriques pour configurer les domaines pouvant accéder à une rubrique Kafka sur une instance séparée par domaine. Regroupez les rubriques dans des espaces de ServiceNow noms, puis liez les espaces de noms à des domaines spécifiques. Pour plus d'informations, consultez Séparation de domaine et Connexion au flux.

    Diagramme d’architecture

    Le diagramme suivant montre les composants clés de Connexion au flux, comment ils sont liés aux ServiceNow applications tierces et comment elles se connectent à votre environnement Kafka via Hermes.

    Figure 2. Diagramme d’architecture de Connexion au flux
    Diagramme montrant les composants de Connexion au flux et leur relation avec Kafka, ServiceNow, et le Service de messagerie Hermes .

    Module d'extension

    Connexion au flux nécessite le module d’extension ServiceNow Connexion au flux Programme d’installation [com.glide.hub.stream_connect.installer]. Ce module d’extension permet aux composants sous licence d’utiliser des données de diffusion en continu basées sur des messages dans Connexion au flux.