Connecter Kafka et PubNub
Published: 2024-03-05 16:37:29

Kafka est en passe de devenir le courtier d'événements par excellence pour le développement de l'architecture pilotée par les événements (ADA). L'AED permet d'accélérer le développement de logiciels, de générer des fonctionnalités et des informations en temps réel et de découpler les systèmes monolithiques.

Mais Kakfa n'est pas conçu pour se connecter directement aux [appareils](https://www.pubnub.com/solutions/edge-messaging/) périphériques, tels que les smartphones, les navigateurs, les appareils IoT et les ordinateurs portables. C'est là qu'intervient PubNub, une plateforme complète pour créer et gérer des applications en temps réel qui s'exécutent sur des périphériques que Kafka ne peut pas atteindre. Heureusement, nos clients peuvent bénéficier du meilleur des deux mondes, en alimentant leurs applications en temps réel avec des données provenant directement de leurs systèmes (où les événements sont déjà diffusés par Kafka) et en se connectant à leurs périphériques à l'aide de PubNub.

De plus, beaucoup de nos clients vont streamer les événements provenant des équipements périphériques vers Kafka, avec en option le filtrage, l'agrégation et d'autres pré-traitements nécessaires "à la périphérie" (c'est-à-dire au sein du réseau PubNub) avant que ces événements ne soient envoyés à Kafka.

Qu'est-ce que le PubNub Kafka Bridge ?
--------------------------------------

Le [PubNub Kafka Bridge](https://www.pubnub.com/developers/kafka/) vous permet de relier de manière transparente des événements avec votre déploiement Kafka dans et hors de PubNub en utilisant nos nouveaux [Sink Connector](https://www.pubnub.com/docs/general/integrations/kafka/pubnub-kafka-sink-connector) et [Kafka Action](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kafka-action), respectivement. Le pont Kafka peut être déployé sur site, sur Amazon via leur service Managed Kafka (MSK), ou sur le cloud Confluent.

Le connecteur Kafka Sink prêt à l'emploi s'intègre directement à votre déploiement Kafka, permettant la distribution d'événements en temps réel **depuis** Kafka **vers des** périphériques, notamment des navigateurs web, des applications mobiles et des capteurs IoT.

L'action Kafka entièrement gérée, accessible au sein de notre service Events & Actions, facilite le streaming des événements **des** périphériques **vers** Kafka, en offrant des fonctionnalités optionnelles de filtrage, d'agrégation et d'autres capacités de prétraitement nécessaires "à la périphérie".

![](https://www.pubnub.com/cdn/3prze68gbwl1/2NylVGyDwejUVytkpbDjve/5b4e989f27a501a2c2063c54850d73eb/Kafka_Bridge.svg?w=700&h=550)

Si vous souhaitez simplement savoir comment configurer le PubNub Kafka Bridge, n'hésitez pas à passer directement à la fin de cet article ou à consulter notre documentation dédiée à [documentation Kafka](https://www.pubnub.com/docs/general/integrations/kafka/basics).

Pourquoi utiliser PubNub + Kafka pour votre Event Driven Architecture (EDA) ?
-----------------------------------------------------------------------------

Pour faire court : Kafka est la solution la plus populaire pour alimenter l'architecture pilotée par les événements à l'intérieur du centre de données. PubNub ne remplace pas Kafka mais l'étend à l'extérieur du centre de données, aux appareils des utilisateurs finaux et à d'autres centres de données.

**Mais qu'est-ce que cela signifie en pratique ?**

Toutes les grandes entreprises prospères ont opéré une transition vers une architecture pilotée par les événements afin d'améliorer la gestion et l'évolutivité de leurs systèmes et d'offrir une expérience plus réactive à leurs clients. L'architecture pilotée par les événements utilise les événements pour communiquer entre les services dorsaux et/ou les appareils des utilisateurs finaux.Un événement est un changement d'état du système, comme une nouvelle commande passée via un site web de commerce électronique ou une mise à jour de statut reçue d'un travailleur sur le terrain. Ces événements sont publiés sur un bus d'événements, puis acheminés vers toute personne qui s'est abonnée pour recevoir ces événements.

Événements, bus d'événements et abonnés sont des termes génériques, et vous pouvez voir différents termes utilisés pour décrire des concepts fonctionnellement similaires. Par exemple, le "bus d'événements" est connu sous les noms de "bus de messages", "courtier d'événements" ou "système Pub/Sub", en fonction de votre source ou de votre secteur d'activité.

**Pourquoi Kafka ?**

[Kafka](https://kafka.apache.org) est une solution EDA fiable et open-source que 80 % des entreprises du Fortune 100 utilisent.

**Alors, pourquoi utiliser PubNub avec Kafka ?**

Alors que Kafka est utilisé et déployé dans le centre de données du client, PubNub étend les concepts événementiels de l'AED en dehors du centre de données jusqu'à la [périphérie du réseau](https://www.pubnub.com/solutions/edge-messaging/), y compris aux navigateurs web, aux applications mobiles et aux appareils IoT. Kafka et PubNub sont tous deux conçus pour s'adapter, de sorte que lorsqu'ils sont utilisés conjointement, ils peuvent connecter des millions d'appareils d'utilisateurs finaux à l'extérieur du pare-feu avec des centaines de serveurs dorsaux au sein d'un réseau sécurisé.

En outre, l'utilisation d'un service unique tel que PubNub pour communiquer avec vos périphériques peut simplifier votre processus de certification, puisque vous n'avez plus besoin de vérifier le fournisseur pour chaque service/dispositif vers lequel/depuis lequel vous devez envoyer des événements - vous n'avez qu'à effectuer une seule vérification du fournisseur, avec PubNub.

PubNub supporte déjà toutes les fonctionnalités du bus d'événements, telles que la [messagerie Pub/Sub](https://www.pubnub.com/docs/general/messages/publish) pour le streaming d'événements en temps réel, la [sécurité renforcée](https://www.pubnub.com/docs/general/security/access-control), la [persistance](https://www.pubnub.com/docs/general/storage) pour récupérer les messages passés, et le [traitement d'événements à la volée](https://www.pubnub.com/docs/serverless/functions/overview).

-   Si vous**générez des événements Kafka que vous souhaitez voir apparaître à la périphérie de votre réseau,** vous pouvez le faire avec PubNub.
    
-   Vous**collectez des données à la périphérie du réseau,** par exemple des utilisateurs qui interagissent avec votre application mobile ou web ? Vous pouvez envoyer ces événements à votre instance Kafka à l'aide de PubNub.
    

PubNub + Kafka : Cas d'utilisation EDA :
----------------------------------------

Examinons quelques cas d'utilisation qui peuvent être réalisés en combinant PubNub et Kafka :

-   Tout événement Kafka que vous générez déjà au sein de votre système peut être **diffusé en temps réel** directement vers des applications, y compris des applications JavaScript fonctionnant dans le navigateur. Vous pouvez filtrer et traiter les événements Kafka avant qu'ils ne soient publiés, en veillant à ce que seuls les événements importants et pertinents soient envoyés.
    
-   **Étendez vos événements Kafka à la périphérie du réseau** d'une manière sécurisée qui ne nécessite pas l'exécution de passerelles personnalisées spécialisées dans votre environnement.
    
-   **Connectez facilement des systèmes hétérogènes :** PubNub dispose de plus de 50 SDK et a été conçu dès le départ avec des critères de [sécurité](https://www.pubnub.com/docs/general/setup/data-security) l'interopérabilité n'est donc pas un problème.
    
-   **Créez des applications qui diffusent des événements en temps réel** directement les uns vers les autres (comme des forums de discussion, des localisations d'appareils, des relevés de capteurs, etc.) tout en veillant à ce que tous les événements soient diffusés simultanément dans votre courtier Kafka à des fins d'analyse, d'archivage, et plus encore.
    
-   Établir**un lien entre plusieurs centres de données** ou des déploiements de centres de données hybrides sans avoir à mettre en place des environnements VPC complexes.
    
-   **Syndiquer des flux de données à des partenaires commerciaux**, en exposant une API de streaming sécurisée basée sur PubNub, avec un modèle de sécurité zéro confiance qui vous permet de filtrer, de configurer et de désactiver les flux d'événements en toute simplicité.
    

Configuration du PubNub Kafka Bridge
------------------------------------

Le [Kafka Bridge](https://www.pubnub.com/docs/general/integrations/kafka/basics) est le terme générique de PubNub pour toute l'intégration Kafka/PubNub et comprend deux solutions distinctes.

1.  Le "PubNub Kafka Sink Connector" est utilisé pour **envoyer des événements Kafka** **_dans_** **PubNub**. Nous fournissons un [connecteur Kafka Sink](https://kafka.apache.org/documentation/#sinkconnectconfigs) personnalisé qui permet à PubNub de recevoir des événements Kafka.
    
2.  L'"Action PubNub Kafka", qui fait partie de notre produit [Events & Actions](https://www.pubnub.com/docs/serverless/events-and-actions/overview), vous permet d'**envoyer des événements PubNub** **_dans_** **Kafka**.
    

Comme condition préalable à toutes les étapes de configuration détaillées ici, vous devrez [vous inscrire à PubNub](http://admin.pubnub.com) et obtenir vos clés API (publish\_key et subscribe\_key).

### Configuration du connecteur PubNub Kafka Sink

Pour mieux comprendre comment installer, configurer et tester le connecteur PubNub Kafka Sink, **je vous recommande vivement cet article de blog, '**[**Installing the PubNub Kafka Sink Conne**](https://www.pubnub.com/blog/installing-pubnub-kafka-sink-connector/)ctor**',** écrit par le développeur du connecteur.

Vous pouvez également trouver de la documentation supplémentaire sur notre [page docs PubNub Kafka Sink Connector](https://www.pubnub.com/docs/general/integrations/kafka/pubnub-kafka-sink-connector).

En résumé : le connecteur PubNub Kafka Sink est disponible sur Github à l'adresse [https://github.com/pubnub/pubnub-kafka-sink-connector.](https://github.com/pubnub/pubnub-kafka-sink-connector)

Si vous souhaitez simplement tester le connecteur pour voir comment il fonctionne, une image Docker est fournie dans le dépôt, qui lancera une instance Kafka, installera les dépendances et émettra des événements de test composés d'un paramètre d'horodatage. Après avoir activé le connecteur à l'aide d'un appel POST, vous verrez des événements PubNub reçus avec une faible latence qui correspondent aux événements de test Kafka.

Pour utiliser le connecteur sink en production, une commande Maven peut être utilisée pour construire le fichier .jar à partir de la source, qui peut ensuite être copié dans le répertoire approprié (en fonction de votre [configuration Kafka Connect](https://docs.confluent.io/platform/current/connect/userguide.html#installing-kconnect-plugins)) et le connecteur configuré en conséquence.

Veuillez consulter la page de documentation pour la [configuration complète du connecteur](https://www.pubnub.com/docs/general/integrations/kafka/pubnub-kafka-sink-connector#configuration-options), mais tous les déploiements auront besoin, au minimum, des éléments suivants

-   Le ou les sujets Kafka que vous souhaitez envoyer à PubNub
    
-   Les clés et ID PubNub que Kafka doit utiliser lors de la publication vers PubNub.
    
-   Des options supplémentaires pour la sérialisation et la gestion des erreurs.
    

### Configuration de l'action PubNub Kafka

[Events](https://www.pubnub.com/docs/serverless/events-and-actions/overview) & Actions est un service PubNub qui vous permet d'envoyer des données en temps réel à des systèmes tiers pour le stockage, le traitement ou l'analyse. Events & Actions fonctionne en vous permettant de spécifier des [événements](https://www.pubnub.com/docs/serverless/events-and-actions/events) PubNub, par exemple, un message a été publié sur un canal PubNub spécifique, ou un utilisateur avec un ID particulier publie un message.Pour chaque événement, vous pouvez spécifier quelles [actions](https://www.pubnub.com/docs/serverless/events-and-actions/overview#actions) doivent avoir lieu lorsque l'événement est déclenché, par exemple, vous pourriez vouloir déclencher un Webhook, envoyer vos données à Amazon Kinesis, ou (comme vous l'avez peut-être deviné d'après le sujet de cet article) envoyer vos données à Apache Kafka.

Pour une référence rapide à la documentation, les étapes sont les suivantes :

1.  [Définir l'événement ou les événements PubNub](https://www.pubnub.com/docs/serverless/events-and-actions/events) qui représentent les données que vous souhaitez envoyer à Kafka. C'est également l'étape qui vous permet de filtrer les événements qui correspondent à des modèles spécifiques.
    
2.  [Configurer l'action Kafka](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kafka-action) avec les détails de votre point de terminaison Kafka, qu'il s'agisse d'un hébergement autonome, d'un cluster Amazon MSK ou de Confluent Cloud.
    

### Exemple de configuration de l'action Kafka de PubNub

En sélectionnant 'Events & Actions' dans le [portail d'administration de PubNub](https://admin.pubnub.com), vous avez la possibilité de spécifier à la fois un écouteur d'événement et une action.

![Creating a Kafka Action ](https://www.pubnub.com/cdn/3prze68gbwl1/6OVcygGditdFc2EGSVIy1j/9f1f2cd9030f27e9efba8cc5a39705c5/1.png)

Sélectionnez '+ Add Event Listener' et choisissez une source d'événement.

![Creating a Kafka Action ](https://www.pubnub.com/cdn/3prze68gbwl1/52VGEHf6TQFvPE3I41pb6g/b533f7787d2688c741cd694cece10cbe/2.png)

Supposons que nous voulions exporter tous les messages reçus sur le canal dont le nom est "send-to-kafka", la configuration de l'événement ressemblera à ceci :

![Creating a Kafka Action ](https://www.pubnub.com/cdn/3prze68gbwl1/5Oh144gN0jimJfKaYxLgbB/39e902cc2bfe0e9db80f2d1fa7960bd5/3.png)

Ensuite, créer une action Apache Kafka

![Creating a Kafka Action ](https://www.pubnub.com/cdn/3prze68gbwl1/1IDJ8MfST0SAAcRtUpxXRC/ee64a3d56d4e4b6ff47711f8dde3ec13/4.png)

La signification de chacun des champs de la configuration de l'action est détaillée dans la [documentation de l'action Kafka](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kafka-action), mais la capture d'écran suivante correspond à la configuration pour :

-   Sujet Kafka : topic\_0
    
-   Clé du sujet Kafka : stamford
    
-   Authentification : SCRAM-SHA-256
    
-   URL du cluster Kafka pour recevoir les événements : 574mf0rd-bridge.ldn-west:1905
    
-   En cas d'échec, les tentatives seront répétées deux fois, avec un intervalle calculé à l'aide d'une [formule](https://www.pubnub.com/docs/serverless/events-and-actions/events#retries) basée sur 450 secondes.
    

![Creating a Kafka Action ](https://www.pubnub.com/cdn/3prze68gbwl1/5htBDRFrFIPAIrJmADnK73/fad12a93dca4f892d4dd166a656f9722/5.png)

En résumé
---------

Si vous utilisez déjà Kafka dans votre organisation, vous pouvez améliorer les capacités en temps réel des appareils à la [périphérie de](https://www.pubnub.com/solutions/edge-messaging/) votre [réseau en utilisant PubNub](https://www.pubnub.com/solutions/edge-messaging/). Cela signifie que les événements qui se produisent sur votre bus d'événements Kafka peuvent être distribués à vos clients indépendamment de la plate-forme, par exemple, un navigateur Web utilisant JavaScript ou un appareil mobile fonctionnant sous iOS ou Android. Vous pouvez également ingérer des données à partir de vos appareils clients dans Kafka en temps réel sur le réseau PubNub sans configuration complexe, ni problèmes d'évolutivité ou de sécurité des données.

Pour en savoir plus, consultez notre [page](https://www.pubnub.com/developers/kafka/) dédiée aux [développeurs de Kafka Bridge](https://www.pubnub.com/developers/kafka/) ou notre [documentation sur l'intégration de Kafka](https://www.pubnub.com/docs/general/integrations/kafka/basics). Si vous avez des questions sur l'installation, veuillez contacter notre [équipe de support](https://support.pubnub.com/hc/en-us) ou notre équipe de relations avec les développeurs en envoyant un e-mail à [devrel@pubnub.com.](mailto:devrel@pubnub.com)

#### Sommaire

[Qu'est-ce que le PubNub Kafka Bridge ?](#h-0)[Pourquoi utiliser PubNub +](#h-1)[Kafka](#h-2)[pour votre Event Driven Architecture (EDA) ?](#h-1)[Cas d'utilisation EDA:](#h-2)[Configurer le PubNub Kafka BridgeConfigurer](#h-3) le[PubNub Kafka Sink ConnectorConfigurer](#h-4)[le PubNub Kafka ActionExemple de](#h-5)[configuration du PubNub Kafka ActionEn](#h-6)[résumé](#h-7)

Comment PubNub peut-il vous aider ?
===================================

Cet article a été publié à l'origine sur [PubNub.com](https://www.pubnub.com/blog/connecting-kafka-and-pubnub/)

Notre plateforme aide les développeurs à construire, fournir et gérer l'interactivité en temps réel pour les applications web, les applications mobiles et les appareils IoT.

La base de notre plateforme est le réseau de messagerie en temps réel le plus grand et le plus évolutif de l'industrie. Avec plus de 15 points de présence dans le monde, 800 millions d'utilisateurs actifs mensuels et une fiabilité de 99,999 %, vous n'aurez jamais à vous soucier des pannes, des limites de concurrence ou des problèmes de latence causés par les pics de trafic.

Découvrez PubNub
----------------

Découvrez le [Live Tour](https://www.pubnub.com/tour/introduction/) pour comprendre les concepts essentiels de chaque application alimentée par PubNub en moins de 5 minutes.

S'installer
-----------

Créez un [compte PubNub](https://admin.pubnub.com/signup/) pour un accès immédiat et gratuit aux clés PubNub.

Commencer
---------

La [documentation PubNub](https://www.pubnub.com/docs) vous permettra de démarrer, quel que soit votre cas d'utilisation ou votre [SDK](https://www.pubnub.com/docs).