producer_routing.py 795 B

1234567891011121314151617181920212223242526
  1. # -*- coding: utf-8 -*-
  2. import pika
  3. import sys
  4. # 连接参数
  5. user_info = pika.PlainCredentials('user', 'Un2yzriWm7veSDoh')
  6. connection = pika.BlockingConnection(pika.ConnectionParameters(
  7. 'rabbitmq.rabbitmq.svc.cluster.local', 5672, '/', user_info))
  8. channel = connection.channel()
  9. # 1. 声明一个 direct 交换机
  10. channel.exchange_declare(exchange='direct_logs', exchange_type='direct')
  11. # 2. 从命令行读取 routing_key(默认 info)
  12. severity = sys.argv[1] if len(sys.argv) > 1 else 'info'
  13. message = ' '.join(sys.argv[2:]) or 'Hello Routing!'
  14. # 3. 发消息
  15. channel.basic_publish(
  16. exchange='direct_logs',
  17. routing_key=severity, # 只有绑定相同 routing_key 的队列才能收到
  18. body=message
  19. )
  20. print(f" [x] Sent {severity}:{message}")
  21. connection.close()