1、設(shè)置rabbitMQ鏡像模式
成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計制作、成都做網(wǎng)站與策劃設(shè)計,連云港網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:連云港等地區(qū)。連云港做網(wǎng)站價格咨詢:13518219792
1.1、普通模式
集群各個節(jié)點(diǎn)僅有相同的元數(shù)據(jù),即隊列的結(jié)構(gòu)
消息實(shí)體只存在于其中一個節(jié)點(diǎn)rabbit01(或者rabbit02)
當(dāng)消息進(jìn)入rabbit01節(jié)點(diǎn)的Queue后,consumer從rabbit02節(jié)點(diǎn)消費(fèi)時,RabbitMQ會臨時在rabbit01、rabbit02間進(jìn)行消息傳輸,把A中的消息實(shí)體取出并經(jīng)過B發(fā)送給consumer
1.2、鏡像模式
把需要的隊列做成鏡像隊列,存在與多個節(jié)點(diǎn),消息實(shí)體會主動在鏡像節(jié)點(diǎn)間同步,屬于RabbitMQ的HA方案。
副作用也很明顯,除了降低系統(tǒng)性能外,如果鏡像隊列數(shù)量過多,加之大量的消息進(jìn)入,集群內(nèi)部的網(wǎng)絡(luò)帶寬將會被這種同步通訊大大消耗掉。
1.1、創(chuàng)建鏡像模式
啟動rabbit
rabbitmq-server start -detached
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
1.2、查看
rabbitmqctl list_policies
rabbitmqctl set_policy [-p <vhost>] [--priority <priority>] [--apply-to <apply-to>] <name> <pattern> <definition>#清除
rabbitmqctl clear_policy [-p <vhost>] <name>#查看
rabbitmqctl list_policies [-p <vhost>]
清除鏡像模式
rabbitmqctl clear_policy -p / ha-all
集群節(jié)點(diǎn)狀態(tài):
{running_nodes,[rabbit@zk_kakfa3,rabbit@zk_kakfa2,rabbit@zk_kakfa1]},
編寫python測試發(fā)送、接收消息腳本:
1.3、安裝依賴:
python client
pip install pika
1.4、RabbitMQ控制添加隊列
1.5、python測試發(fā)送腳本
more mian.py
import pika
import random,time
credentials = pika.PlainCredentials('testmq', '1qaz2wsx')
#這里可以連接遠(yuǎn)程IP,請記得打開遠(yuǎn)程端口
parameters = pika.ConnectionParameters('192.168.12.223',5672,'/',credentials)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
#channel.queue_declare(queue='hello')
number=1
while True:
# for i in ['test3']:
# number = random.randint(1,1000)
body = 'hello world {}:'.format(number)
channel.basic_publish(exchange='{}'.format('test3'),
routing_key='hello',
body=body)
print("push message: [x] Sent %s" %body)
time.sleep(1)
number+=1
connection.close()
1.6、python測試接收腳本
#!/usr/bin/env python
import pika
import random,time
def callback(ch, method, props, body):
#time.sleep(2)
print('recive message:',body)
ch.basic_ack(delivery_tag=method.delivery_tag)
credentials = pika.PlainCredentials('testmq', '1qaz2wsx')
#這里可以連接遠(yuǎn)程IP,請記得打開遠(yuǎn)程端口
parameters = pika.ConnectionParameters('192.168.12.223',5672,'/',credentials)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
channel.basic_consume('test3',callback, auto_ack=False)
#channel.basic_consume('test2',callback, auto_ack=True)
channel.start_consuming()
文章標(biāo)題:RabbitMQ使用Python測試發(fā)送接收消息
瀏覽地址:http://m.kartarina.com/article6/jedsig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、App開發(fā)、云服務(wù)器、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)