consumer_pubsub.py 1.1 KB

1234567891011121314151617181920212223242526272829
  1. #消费者
  2. import pika
  3. user_info = pika.PlainCredentials('user', 'J70e6K7BRrxrU1dO')
  4. connection = pika.BlockingConnection(pika.ConnectionParameters('rabbitmq.rabbitmq.svc.cluster.local', 5672, '/', user_info))
  5. channel = connection.channel()
  6. channel.exchange_declare(exchange='交换机', exchange_type='fanout')
  7. # 使用RabbitMQ给自己生成一个专有的queue
  8. result = channel.queue_declare(queue='333')
  9. # result = channel.queue_declare(queue='', exclusive=True)
  10. queue_name = result.method.queue
  11. # 这里如果设置exclusive=True参数,那么该队列就是一个只有队列,在消费者结束后,该专有队列也会自动清除,如果queue=''没有设置名字的话,那么就会自动生成一个
  12. # 不会重复的队列名
  13. # 将queue绑定到指定交换机
  14. channel.queue_bind(exchange='交换机', queue=queue_name)
  15. print(' [*] Waiting for message.')
  16. def callback(ch, method, properties, body):
  17. print("消费者收到:{}".format(body.decode('utf-8')))
  18. channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True)
  19. channel.start_consuming()