Arbeiten mit Stream Connect für Apache Kafka
Verbinden Sie Ihre Apache Kafka -Umgebung mit Ihrer ServiceNow -Instanz mit Stream Connect für Apache Kafka.
Apache Kafka ist eine verteilte Event-Streaming-Plattform, die eine einheitliche Möglichkeit bietet, Daten über mehrere Systeme hinweg auszutauschen. Stream Connect für Apache Kafka verknüpft Ihre Kafka-Umgebung mit Ihrer ServiceNow -Instanz, sodass Sie Daten zwischen Ihrer Instanz und Ihren externen Systemen streamen können.
Vorteile
Veröffentlichen und verarbeiten Sie Kafka-Events im großen Maßstab. Veröffentlichen Sie Events in Ihrer Kafka-Umgebung aus Ihrer ServiceNow -Instanz, und verbrauchen Sie Kafka-Events aus Ihren externen Systemen mit hohem Volumen und geringer Latenz.
- Erstellen Sie Flows, die Kafka-Events erzeugen und verbrauchen. Stream Connect ist in Flow Designerintegriert und bietet eine Low-Code-Methode zum Veröffentlichen und Verarbeiten von Kafka-Nachrichten.
- Importieren Sie Daten aus Ihrer Kafka-Umgebung, und verarbeiten Sie diese Daten mit Ihrer vorhandenen robusten Transformations-Engine (RTE) oder Transformationszuordnungskonfigurationen.
- Konfigurieren Sie einen Verbraucher, der Ihre eigenen Skripts verwendet, um Daten aus einem Kafka-Thema zu verarbeiten.
- Überwachen Sie die Leistung Ihrer Verbraucher mit detaillierten Berichten zu Statistiken und Leistungsmetriken.
Komponenten
Stream Connect umfasst die folgenden Komponenten.
- Hersteller
Ein Produzent veröffentlicht Events in einer Kafka-Umgebung. Stream Connect hat zwei Produzenten.
- Kafka-Ersteller-Schritt in Flow Designer
- ProducerV2-API
- Verbraucher
Ein Verbraucher liest und verarbeitet Events aus einer Kafka-Umgebung. Stream Connect hat mehrere Verbraucher.
- Kafka-Nachrichtenauslöser in Flow Designer
- ETL-Verbraucher (Extract Transform Load).
- Transformationszuordnungsverbraucher
- Skriptverbraucher
- Themen und Themen-Namespaces
Events werden in Themen organisiert und gespeichert. In einem Thema werden Events desselben Typs gespeichert. Themen werden partitioniert. Events haben einen Schlüssel. Events mit demselben Schlüssel werden in derselben Partition gespeichert.
Themen verweisen auf einen Themen-Namespace. Sie können Namespaces verwenden, um Themen logisch zu organisieren. Sie können beispielsweise Themen basierend darauf gruppieren, aus welchem Kafka-Cluster sie stammen. Sie können Namespaces auch verwenden, um zu konfigurieren, welche Domänen auf welche Themen in einer domänengetrennten Instanz zugreifen können. Weitere Informationen finden Sie unter Managing namespaces and topics in Hermes.
- Abonnements
Ein Abonnement ist ein Datensatz, der einem Verbraucher zugeordnet ist. Sie speichert Konfigurationsinformationen über den Verbraucher, z. B. den Namen des Kafka-Themas, aus dem Nachrichten verarbeitet werden sollen, und die Anzahl der Partitionen des Themas. Der Abonnementdatensatz wird erstellt, wenn ein Kafka-Stream aktiviert wird.
Jeder Abonnementdatensatz verfügt über mehrere Metriken, mit denen Sie die Leistung des Verbrauchers anzeigen können, der das Thema liest. Weitere Informationen finden Sie unter Anzeigen von Kafka-Abonnements und -Statistiken.
- Partitionsgruppen
Eine Partitionsgruppe ist ein Satz von Themenpartitionen. Wenn ein Thema beispielsweise sechs Partitionen hat, können diese in drei Partitionsgruppen mit zwei Partitionen in jeder Gruppe aufgeteilt werden.
- Kafka-Verbraucherauftrag
Eine Aufgabe, die Hermes regelmäßig auf neue Events in einem Thema überprüft. Der Auftrag wählt eine freie Partitionsgruppe aus und ruft ihr Abonnement ab. Das Abonnement gibt den Themennamen an, und die Aufgabe überprüft die Partitionen auf Nachrichten für dieses Thema.
- Kafka-Streams (in der folgenden Abbildung nicht dargestellt)
Ein Kafka-Stream ist ein Datensatz, der den Datenstrom für einen Verbraucher definiert. Wenn Sie den Kafka-Nachrichtenauslöser in Flow Designerverwenden, wird der Kafka-Stream automatisch für Sie erstellt. Wenn Sie einen anderen Verbraucher verwenden, müssen Sie einen manuell erstellen.
Um Ihre Kafka-Umgebung mit Ihrer Instanz ServiceNow zu verknüpfen, verwendet Stream Connect Hermes Messaging-Service. Mit Hermes Messaging-Service kann Ihre Instanz große Mengen von Kafka-Events erzeugen und verbrauchen. Sie verwaltet den Datenfluss zwischen Ihrer Kafka-Umgebung und Ihrer Instanz. Weitere Informationen finden Sie unter Hermes Messaging Service.
Das folgende Diagramm zeigt die wichtigsten Komponenten von Stream Connect, ihre Beziehung zu ServiceNow und Anwendungen von Drittanbietern und wie sie über Hermes eine Verbindung zu Ihrer Kafka-Umgebung herstellen.
Stream Connect und Flow Designer
Erstellen Sie Flows, die Kafka-Ereignisse mit Stream Connect und erzeugen und verbrauchen Flow Designer. Stream Connect verfügt über einen Flow-Auslöser für die Verwendung von Kafka-Events und einen Aktionsschritt für deren Erstellung.
Verwenden Sie den Auslöser „Kafka-Nachricht“, um Flows zu erstellen, die Kafka-Events verarbeiten. Sie können einen Flow erstellen, der Daten aus Kafka verarbeitet und in eine Tabelle einfügt oder Spokes verwendet, um die Daten an Umgebungen von Drittanbietern zu kommunizieren.
Der Auslöser wird aktiviert, wenn der Flow aktiviert wird. Nach der Aktivierung startet der Auslöser den Flow immer dann, wenn eine Nachricht im angegebenen Kafka-Thema vorhanden ist. Wenn Sie den Auslöser „Kafka-Nachricht“ verwenden, müssen Sie keinen Kafka-Stream oder Abonnementdatensatz erstellen. Das System erstellt automatisch beide, wenn der Flow aktiviert wird. Nachrichten werden aus dem Thema gelesen, solange der Flow aktiv ist.
Verwenden Sie den Schritt „Kafka- Ersteller“, um Aktionen zu erstellen, die Events zu einem Thema in Ihrer Kafka-Umgebung veröffentlichen. Sie können den Schritt beispielsweise verwenden, um eine Nachricht über eine Aktualisierung eines Incident in ServiceNowzu erstellen und die Nachricht dann an ein Thema in Ihrer Kafka-Umgebung zu senden.
ETL, Transformationszuordnung und Skriptverbraucher
Importieren Sie Daten aus Ihrer Kafka-Umgebung mithilfe Ihrer vorhandenen RTE- oder Transformationszuordnungskonfigurationen. Die Verbraucher „Transform Load extrahieren“ (ETL) und „Transform Map“ vereinfachen Ihre Datenimporte, indem sie eine effiziente Möglichkeit bieten, eine Nutzlast aus einer Kafka-Nachricht zu übernehmen, die Daten zu transformieren und einen Datensatz in eine Tabelle einzufügen oder zu aktualisieren. Sie können von einem geplanten Datenimport zu einem mit Stream Connect wechseln und die Daten mit denselben Konfigurationen verarbeiten.
Sie können den Skriptverbraucher auch verwenden, um Daten aus Ihrer Kafka-Umgebung zu verarbeiten. Der Skriptverbraucher ist für fortgeschrittenere Anwendungsfälle vorgesehen, z. B. wenn die Daten in der Nachricht nicht strukturiert sind oder Datensuchen mit Code erforderlich sind.
Wenn Sie Konfigurieren Sie einen ETL-Verbraucher (Extract Transform Load)., Konfigurieren Sie einen Transformationszuordnungsverbraucheroder Konfigurieren Sie einen Skriptverbraucherverwenden , müssen Sie auch Erstellen Sie einen Kafka-Streamverwenden .
ProducerV2-API
Veröffentlichen Sie Events in einem Kafka-Thema mit der ProducerV2-API.
Stream Connect-Nachrichtenreplikation
Sie können Daten zwischen Ihrer Kafka-Umgebung und ServiceNow mit Stream Connect-Nachrichtenreplikation replizieren.
Mit Stream Connect-Nachrichtenreplikation können Sie Nachrichtenreplikationen direkt von Ihrer ServiceNow -Instanz aus konfigurieren und verwalten. Sie verwendet MID-Server, um die Datenreplikationen auszuführen, sodass Sie keine zusätzlichen Replikationsservices konfigurieren oder hosten müssen. Außerdem wird das Setup der Nachrichtenreplikation vereinfacht, da die erforderlichen Zertifikate automatisch generiert werden.
Weitere Informationen finden Sie unter Stream Connect-Nachrichtenreplikation.
Unverarbeitete und nicht zugestellte Nachrichten
Wenn eine Nachricht nicht zugestellt werden kann, wird sie in der Tabelle „Nicht zugestellte Kafka-Nachrichten“ [sys_kafka_undelivered_messages] gespeichert. Eine geplante Aufgabe, Kafka Producer Retry, liest diese Tabelle regelmäßig und versucht, Nachrichten erneut zuzustellen.
Wenn ein Batch von Nachrichten aufgrund einer Zeitüberschreitung nicht verarbeitet werden kann, wird er in der Tabelle „Kafka – Unverarbeitete Nachrichten“ [sys_kafka_unprocessed_messages] gespeichert. Die Zeitüberschreitung für einen Nachrichtenbatch kann mit der Eigenschaft com.glide.kafka_consumer.timeout festgelegt werden. Der Standardwert beträgt 60 Sekunden. Diese Tabelle ist eine rotierte Tabelle, daher werden Datensätze automatisch bereinigt.
Domänentrennung
Verwenden Sie Stream Connect-Themen-Namespaces, um zu konfigurieren, welche Domänen auf ein Kafka-Thema in einer domänengetrennten Instanz zugreifen können. Gruppieren Sie Themen in ServiceNow Namespaces, und verknüpfen Sie die Namespaces dann mit bestimmten Domänen. Weitere Informationen finden Sie unter Domänentrennung und Stream Connect für Apache Kafka.