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 持久化

當有多個消費者時,默認狀況是每次把消息發給下一個消費者。python

TODO
queue sz
message TTLtcp

fanout 的 exchange 會忽略 routing_key, 可是 bing 的名字仍是指定的,
沒有指定則用 queue 的名字code

相關文章
相關標籤/搜索