producer_topic.py 700 B

123456789101112131415161718192021222324
  1. # -*- coding: utf-8 -*-
  2. import pika
  3. import sys
  4. user_info = pika.PlainCredentials('user', 'Un2yzriWm7veSDoh')
  5. connection = pika.BlockingConnection(
  6. pika.ConnectionParameters('rabbitmq.rabbitmq.svc.cluster.local', 5672, '/', user_info)
  7. )
  8. channel = connection.channel()
  9. # 1. 声明 topic 交换机
  10. channel.exchange_declare(exchange='topic_logs', exchange_type='topic')
  11. # 2. 从命令行获取 routing_key 和消息
  12. routing_key = sys.argv[1] if len(sys.argv) > 1 else 'anonymous.info'
  13. message = ' '.join(sys.argv[2:]) or 'Hello Topic!'
  14. channel.basic_publish(
  15. exchange='topic_logs',
  16. routing_key=routing_key,
  17. body=message
  18. )
  19. print(f" [x] Sent {routing_key}:{message}")
  20. connection.close()