VT2020-Pulsar-Demo: Difference between revisions
Ali.El-Mufti (talk | contribs) |
Ali.El-Mufti (talk | contribs) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
L'installation se fait très rapidement et n'a aucun prérequis. |
L'installation se fait très rapidement et n'a aucun prérequis. |
||
Il suffit d'executer les commandes suivantes : |
Il suffit d'executer les commandes suivantes : |
||
<pre> |
<pre> |
||
wget https://archive.apache.org/dist/pulsar/pulsar-2.7.0/apache-pulsar-2.7.0-bin.tar.gz |
wget https://archive.apache.org/dist/pulsar/pulsar-2.7.0/apache-pulsar-2.7.0-bin.tar.gz |
||
Line 15: | Line 13: | ||
<pre> |
<pre> |
||
cd apache-pulsar-2.7.0 |
cd apache-pulsar-2.7.0 |
||
</pre> |
|||
== 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 |
|||
<pre> |
|||
./bin/pulsar standalone |
|||
</pre> |
|||
Puis, créons 5 consommateurs par exemple : |
|||
<pre> |
|||
./bin/pulsar-client consume -s "subscription1" topic1 -n 5 |
|||
</pre> |
|||
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 : |
|||
<pre> |
|||
bin/pulsar-client produce topic1 --messages "Bonjour je m'appelle Ali, J'ai 22 ans" |
|||
</pre> |
|||
Une fois ces commandes éxectuées, on remarque que dans terminal du consumer, on obtient le message suivant : |
|||
<pre> |
|||
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 |
|||
</pre> |
|||
Finalement, si l'on réenvoie une nouvelle requete, mais cette fois ci avec 3 messages à la place de 2 comme ceci : |
|||
<pre> |
|||
bin/pulsar-client produce topic1 --messages "Bonjour je m'appelle Ali, J'ai 22 ans, j'aime bien manger" |
|||
</pre> |
|||
Un nouveau message apparaitra dans le consumer, qui s'arretera vu qu'il a été programmé pour recevoir 5 messages : |
|||
<pre> |
|||
----- 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 |
|||
</pre> |
|||
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 |
|||
<pre> |
|||
./bin/pulsar-admin clusters list |
|||
</pre> |
|||
Pour Obtenir des informations sur un cluster |
|||
<pre> |
|||
./bin/pulsar-admin clusters get standalone |
|||
</pre> |
|||
Pour créer un topic |
|||
<pre> |
|||
./bin/pulsar-admin topics create-partitioned-topic --partitions 3 my-partitioned-topic |
|||
</pre> |
|||
Pour lister les topics |
|||
<pre> |
|||
./bin/pulsar-admin topics list-partitioned-topics public/default |
|||
</pre> |
|||
Lister les subscriptions d'un topic |
|||
<pre> |
|||
./bin/pulsar-admin topics subscriptions persistent://public/default/topic1 |
|||
</pre> |
|||
=== Interface Web === |
|||
Pour obtenir une interface web de notre cluster in nous suffit d'installer l'image docker suivante : |
|||
<pre> |
|||
sudo docker run -it -p 3000:3000 --network=host bbonnin/pulsar-express |
|||
</pre> |
</pre> |
Latest revision as of 01:48, 7 December 2020
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