Felhasználói eszközök

Eszközök a webhelyen


tanszek:oktatas:informacios_rendszerek_integralasa:uezenetsorok-rabbitmq_2

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalon Előző változat
Következő változat
Előző változat
tanszek:oktatas:informacios_rendszerek_integralasa:uezenetsorok-rabbitmq_2 [2023/05/08 07:17]
knehez
tanszek:oktatas:informacios_rendszerek_integralasa:uezenetsorok-rabbitmq_2 [2023/06/30 11:32] (aktuális)
knehez
Sor 7: Sor 7:
   * **Készítsen egy második klienst**, ami a '​qualityStatistics'​ sorrol olvassa a statisztikát és a konzolba kiírja hogy pl. '10 '​WRONG'​ messages has been processed'​   * **Készítsen egy második klienst**, ami a '​qualityStatistics'​ sorrol olvassa a statisztikát és a konzolba kiírja hogy pl. '10 '​WRONG'​ messages has been processed'​
  
-A fenti feladatot a http://​docker.iit.uni-miskolc.hu-n keretrendszerben oldjuk meg.+A fenti feladatot a http://​docker.iit.uni-miskolc.hu keretrendszerben oldjuk meg.
  
 === RabbitMQ indítása docker-ben === === RabbitMQ indítása docker-ben ===
Sor 14: Sor 14:
  
 <​code>​ <​code>​
-docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.11-management+docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:​management-alpine
 </​code>​ </​code>​
  
-A futtatás után a rabitMQ management konzol elérhető az 15672-es porton, a guest/guest megadásával. A bal oldali listában láthatjuk a node1 10.x.y.z belső IP címét, amit használhatunk a kliensekben.+A futtatás után a rabitMQ management konzol elérhető az 15672-es porton, a guest/guest megadásával. A bal oldali listában láthatjuk a node1 10.x.y.z belső IP címét, amit használhatunk a kliensekben ​és a feldolgozóban.
  
 Hozzunk létre egy másik konzolt és indítsuk el az alábbi parancsot: Hozzunk létre egy másik konzolt és indítsuk el az alábbi parancsot:
Sor 28: Sor 28:
  
 Hozzuk létre a quality_message_sender.py-t:​ Hozzuk létre a quality_message_sender.py-t:​
 +
 +Használjuk a megfelelő IP-t a //​__init__(self)://​ ben
  
 <code python> <code python>
Sor 33: Sor 35:
 import random import random
 import time import time
- 
  
 class QualitySender:​ class QualitySender:​
     def __init__(self):​     def __init__(self):​
-        self.connection = pika.BlockingConnection(pika.ConnectionParameters('​localhost'))+        self.connection = pika.BlockingConnection(pika.ConnectionParameters('​10.x.y.z'))
         self.channel = self.connection.channel()         self.channel = self.connection.channel()
         self.channel.queue_declare(queue='​qualityQueue'​)         self.channel.queue_declare(queue='​qualityQueue'​)
Sor 51: Sor 52:
     def close_connection(self):​     def close_connection(self):​
         self.connection.close()         self.connection.close()
- 
  
 if __name__ == '​__main__':​ if __name__ == '​__main__':​
Sor 61: Sor 61:
  
 </​code>​ </​code>​
 +
 +A második komponenshez indítsunk egy új konzolt:
 +
 +A //​__init__(self)://​ konstruktorban állítsuk be a rabbitMQ szerver IP címét
  
 <code python> <code python>
 import pika import pika
- 
  
 class QualityConsumer:​ class QualityConsumer:​
Sor 102: Sor 105:
     def close_connection(self):​     def close_connection(self):​
         self.connection.close()         self.connection.close()
- 
  
 if __name__ == '​__main__':​ if __name__ == '​__main__':​
Sor 111: Sor 113:
         consumer.close_connection()         consumer.close_connection()
  
 +</​code>​
 +
 +Készítsük el a statisztika kiírását egy új konzolban:
 +
 +<code python>
 +import pika
 +
 +# RabbitMQ settings
 +connection = pika.BlockingConnection(pika.ConnectionParameters('​10.x.y.z'​))
 +channel = connection.channel()
 +
 +channel.queue_declare(queue='​qualityStatistics'​)
 +
 +def callback(ch,​ method, properties, body):
 +    message = body.decode()
 +    print(f'​{message}'​)
 +    ch.basic_ack(delivery_tag=method.delivery_tag)
 +
 +channel.basic_consume(queue='​qualityStatistics',​ on_message_callback=callback)
  
 +print('​Waiting for quality statistics...'​)
 +channel.start_consuming()
 </​code>​ </​code>​
  
  
 +**Feladat:​**
  
 +A 15672-es porton lépjük be a rabbitMQ management console-ra és vizsgáljuk meg a lehetőségeit.
  
  
tanszek/oktatas/informacios_rendszerek_integralasa/uezenetsorok-rabbitmq_2.1683530222.txt.gz · Utolsó módosítás: 2023/05/08 07:17 szerkesztette: knehez