VT2020-Pulsar-Demo

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