我們首先下載pika,以及rabbitMQ,和ir語(yǔ)言,rabbitMQ是由ir語(yǔ)言編寫的
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到清河網(wǎng)站設(shè)計(jì)與清河網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋清河地區(qū)。消息隊(duì)列的使用過(guò)程大概如下:
(1)客戶端連接到消息隊(duì)列服務(wù)器,打開(kāi)一個(gè)channel。
channel:消息通道,在客戶端的每個(gè)連接里,可建立多個(gè)channel,每個(gè)channel代表一個(gè)會(huì)話任務(wù)。
(2)客戶端聲明一個(gè)exchange,并設(shè)置相關(guān)屬性。
Exchange:消息交換機(jī),它指定消息按什么規(guī)則,路由到哪個(gè)隊(duì)列。
(3)客戶端聲明一個(gè)queue,并設(shè)置相關(guān)屬性。
Queue:消息隊(duì)列載體,每個(gè)消息都會(huì)被投入到一個(gè)或多個(gè)隊(duì)列。
(4)客戶端使用routing key,在exchange和queue之間建立好綁定關(guān)系。
Routing Key:路由關(guān)鍵字,exchange根據(jù)這個(gè)關(guān)鍵字進(jìn)行消息投遞。
(5)客戶端投遞消息到exchange。
Exchange:消息交換機(jī),它指定消息按什么規(guī)則,路由到哪個(gè)隊(duì)列。
接下來(lái)寫一個(gè)生產(chǎn)者:
import pika
connection = pika.BlockingConnection(
pika.ConnectionParameters('localhost'))
channel = connection.channel()#先通過(guò)socket建立一個(gè)實(shí)例,創(chuàng)建一個(gè)新的頻道
# 聲明queue
channel.queue_declare(queue='hello')# 注意此處需要聲明一個(gè)管道或者稱之為隊(duì)列,在此處出發(fā)消息 同時(shí)客戶端與服務(wù)端都需要
# n RabbitMQ a message can never be sent directly to the queue, it always needs to go through an exchange.
channel.basic_publish(exchange='',
routing_key='hello',#queue名字#路由鍵,寫明將消息發(fā)往哪個(gè)隊(duì)列,本例是將消息發(fā)往隊(duì)列pikamq
body='Hello World!')# 消息內(nèi)容
print(" [x] Sent 'Hello World!'")# 當(dāng)生產(chǎn)者發(fā)送完消息后,可選擇關(guān)閉連接
connection.close()
消費(fèi)者:
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost' ))
channel = connection.channel()
channel.queue_declare(queue='hello')
def callback(ch, method, properties, body):
print('--->',ch,method,properties)
print(" [x] Received %r"%body)
channel.basic_consume(callback,
queue='hello',
#no_ack=True #此處有的代碼加了,但是python系統(tǒng)會(huì)自帶,同時(shí)加了之后,一旦等待時(shí)間過(guò)長(zhǎng),生產(chǎn)者發(fā)送的消息,無(wú)法轉(zhuǎn)移到另一個(gè)消費(fèi)者中
)
channel.start_consuming()
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。