VT2020-Pulsar-Demo

From air
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Introduction

Apache Pulsar est assez connu pour être prêt à l'emploi très rapidement. Que ce soit les commandes d'installation ou les commandes d'utilisation, Pulsar est très intuitif et très simple à utiliser.

Installation

L'installation se fait très rapidement et n'a aucun prérequis. Il suffit d'executer les commandes suivantes :

wget https://archive.apache.org/dist/pulsar/pulsar-2.7.0/apache-pulsar-2.7.0-bin.tar.gz
tar xvfz apache-pulsar-2.7.0-bin.tar.gz
cd apache-pulsar-2.7.0

Contenu du package

- bin : Les lignes de commandes de Pulsar
- conf : Les fichiers de configuration de Pulsar tel que la configuration du Broker ou la configuration du ZooKeeper
- examples : Un fichier JAR contenant les exemples des fonctions de Pulsar
- lib : Les fichiers JAR utilisés par Pulsar
- licences : Les fichiers de licences

Début de la démonstration

Une fois que l'on est dans le répertoire apache-pulsar-2.7.0, nous pouvons commencer a utiliser certaines commandes Commencons par déployer un premier cluster

./bin/pulsar standalone

Puis, créons 5 consommateurs par exemple :

./bin/pulsar-client consume -s "subscription1" topic1 -n 5

Puis ouvrons un nouveau terminal afin de pouvoir créer des producteurs, on peut envoyer plusieurs messages à la fois, comme par exemple ici Bonjour je m'appelle Ali et J'ai 22 ans :

bin/pulsar-client produce topic1 --messages "Bonjour je m'appelle Ali, J'ai 22 ans"

Une fois ces commandes éxectuées, on remarque que dans terminal du consumer, on obtient le message suivant :

01:42:37.605 [pulsar-client-io-1-1] INFO  com.scurrilous.circe.checksum.Crc32cIntChecksum - SSE4.2 CRC32C provider initialized
01:42:37.627 [main] INFO  org.apache.pulsar.client.impl.PulsarClientImpl - Client closing. URL: pulsar://localhost:6650/
01:42:37.634 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ProducerImpl - [topic1] [standalone-1-0] Closed Producer
01:42:37.637 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ClientCnx - [id: 0xda5b2a84, L:/127.0.0.1:40976 ! R:localhost/127.0.0.1:6650] Disconnected
01:42:37.641 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ClientCnx - [id: 0xea7443c9, L:/127.0.0.1:40978 ! R:localhost/127.0.0.1:6650] Disconnected
01:42:37.643 [main] INFO  org.apache.pulsar.client.cli.PulsarClientTool - 2 messages successfully produced

Finalement, si l'on réenvoie une nouvelle requete, mais cette fois ci avec 3 messages à la place de 2 comme ceci :

bin/pulsar-client produce topic1 --messages "Bonjour je m'appelle Ali, J'ai 22 ans, j'aime bien manger"

Un nouveau message apparaitra dans le consumer, qui s'arretera vu qu'il a été programmé pour recevoir 5 messages :

----- got message -----
key:[null], properties:[], content:Bonjour je m'appelle Ali
----- got message -----
key:[null], properties:[], content: J'ai 22 ans
----- got message -----
key:[null], properties:[], content: j'aime bien manger
01:43:46.794 [main] INFO  org.apache.pulsar.client.impl.PulsarClientImpl - Client closing. URL: pulsar://localhost:6650/
01:43:46.803 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ConsumerImpl - [topic1] [subscription1] Closed consumer
01:43:46.806 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ClientCnx - [id: 0x5c800610, L:/127.0.0.1:40970 ! R:localhost/127.0.0.1:6650] Disconnected
01:43:46.808 [pulsar-client-io-1-1] INFO  org.apache.pulsar.client.impl.ClientCnx - [id: 0xa1c62468, L:/127.0.0.1:40972 ! R:localhost/127.0.0.1:6650] Disconnected
01:43:46.811 [main] INFO  org.apache.pulsar.client.cli.PulsarClientTool - 5 messages successfully consumed

Notons cependant que le consumer que nous avons appelé est configuré pour être un consumer exclusif.

Dans le bin/pulsar-admin, nous avons énormement d'outils afin de pouvoir obtenir des informations, par exemples, nous pouvons obtenir des informations sur les clusters disponibles : Pour afficher les clusters disponibles

./bin/pulsar-admin clusters list 

Pour Obtenir des informations sur un cluster

./bin/pulsar-admin clusters get standalone

Pour créer un topic

./bin/pulsar-admin topics create-partitioned-topic --partitions 3 my-partitioned-topic

Pour lister les topics

./bin/pulsar-admin topics list-partitioned-topics public/default

Lister les subscriptions d'un topic

./bin/pulsar-admin topics subscriptions persistent://public/default/topic1

Interface Web

Pour obtenir une interface web de notre cluster in nous suffit d'installer l'image docker suivante :

sudo docker run -it -p 3000:3000 --network=host bbonnin/pulsar-express