1. 程式人生 > >Python中RabbitMQ的使用(安裝和簡單教程)

Python中RabbitMQ的使用(安裝和簡單教程)

RabbitMQ(Rabbit Message Queue)是流行的開源訊息佇列系統,用erlang語言開發。
RabbitMQ 它依賴於Erlang,需要先安裝Erlang。首先確定你的window電腦是32位還是64位,以下的安裝以window 64位電腦舉例。

然後安裝RabbitMQ

安裝完畢,編寫生產者與消費者程式碼

#生產者 producer
import pika
connection = pika.BlockingConnection(
    pika.ConnectionParameters('localhost'))#建立一個最基本的socket
chanel = connection.channel()#宣告一個管道

chanel.queue_declare(queue='name')#給管道建立一個佇列,引數是管道佇列名。

chanel.basic_publish(exchange='',
                     routing_key='name',
                     body ='HELLO WORD!')#要傳送的訊息。
print( '發出一個訊息')
connection.close()#關閉
#消費者 consumer
import pika,time

consumer = pika.BlockingConnection\
    (pika.ConnectionParameters('localhost'))#建立socket連線
channel = consumer.channel()#建立管道
channel.queue_declare(queue='name')

def backcall(ch,method,properties,body):#引數body是傳送過來的訊息。
    print(ch,method,properties)
    time.sleep(15)
    print('[x] Received %r'%body)

channel.basic_consume(backcall,#回撥函式。執行結束後立即執行另外一個函式返回給傳送端是否執行完畢。
                      queue='name',
                      no_ack=True#不會告知服務端我是否收到訊息。一般註釋。
                       )#如果註釋掉,對方沒有收到訊息的話不會將訊息丟失,始終在佇列裡等待下次傳送。

print('waiting for message To exit   press CTRL+C')
channel.start_consuming()#啟動後進入死迴圈。一直等待訊息。

rabbitMQ 常用命令

啟動監控管理器:rabbitmq-plugins enable rabbitmq_management
關閉監控管理器:rabbitmq-plugins disable rabbitmq_management
啟動rabbitmq:rabbitmq-service start
關閉rabbitmq:rabbitmq-service stop
檢視所有的佇列:rabbitmqctl list_queues
清除所有的佇列:rabbitmqctl reset
關閉應用:rabbitmqctl stop_app
啟動應用:rabbitmqctl start_app
使用者和許可權設定(後面用處)

新增使用者:rabbitmqctl add_user username password
分配角色:rabbitmqctl set_user_tags username administrator
新增虛擬主機:rabbitmqctl add_vhost  vhost_name
將新虛擬主機授權給新使用者:rabbitmqctl set_permissions -p vhost_name username '.*' '.*' '.*'
角色說明

none  最小許可權角色
management 管理員角色
policymaker   決策者
monitoring  監控
administrator  超級管理員