rabbitmq 笔记

import pika

# 建立 tcp 连接
connection = pika.BlockingConnection(pika.ConnectionParameters('10.43.166.82'))

# 建立虚拟连接
channel = connection.channel()

# 创建 queu
# 如果不指定 queue 参数,rabbitmq server 会随机生成一个名字
channel.queue_declare(queue='hello')


# 发送消息
channel.basic_publish(exchange='',
                      routing_key='hello',
                      body='Hello World!')

print(" [x] Send msg")
# 确认消息发送,关闭 TCP 连接
connection.close()

queue 定义

queue_declare(self, queue='', passive=False, durable=False
              exclusive=False, auto_delete=False,
              arguments=None)
  • queue: 指定队列名字;
  • passive: 只检查队列是否存在;
  • durable: 是否持久化;
  • exclusive: 只有当前 connection 可以访问;
  • auto_delete: 消费者取消或断开连接时删除队列;
  • arguments: 用户 k/v

持久化

queue 持久化

msg 持久化

当有多个消费者时,默认情况是每次把消息发给下一个消费者。

TODO
queue sz
message TTL

fanout 的 exchange 会忽略 routing_key, 但是 bing 的名字还是指定的,
没有指定则用 queue 的名字

猜你喜欢

转载自www.cnblogs.com/baisu/p/8945173.html