python 队列_分享三个实用python脚本--模拟操作rabbitmq队列

概述

今天主要介绍三个python脚本,来模拟操作 rabbitmq,后面实验需要~


一、安装rabbitmq

Rabbitmq基于erlang,得先安装erlang,erlang的下载地址http://www.erlang.org/downloads

1、安装erlang

yum install -y lrzsz wget gcc glibc-devel make ncurses-devel openssl-devel autoconf
24131b0f938060b8039ea967804c5531.png
wget http://erlang.org/download/otp_src_21.2.tar.gztar -xvf otp_src_21.2.tar.gzcd otp_src_21.2./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac && make && make install--设置环境变量/usr/local/erlang/bin/erlecho "export PATH=$PATH:/usr/local/erlang/bin" >> /etc/profilesource /etc/profile
2956f27302b39823dfaa0cac85cf4831.png

2、安装rabbitmq

cd /usr/local/src/wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-generic-unix-3.7.14.tar.xztar -xvf rabbitmq-server-generic-unix-3.7.14.tar.xzmv rabbitmq_server-3.7.14 /usr/local/rabbitmqecho "export PATH=$PATH:/usr/local/rabbitmq/sbin" >> /etc/profilesource /etc/profile
39d33b300af431b9ae9473a09cf3eb0e.png

3、Rabbitmq服务器的管理

启动:rabbitmq-server -detached (systemctl rabbitmq-server start)

关闭:rabbitmqctl stop

状态查看:rabbitmqctl status启用插件:rabbitmq-plugins enable rabbitmq_management添加远程登录的用户:rabbitmqctl add_user  hwb fswl@1234 

设置用户为管理员:rabbitmqctl set_user_tags hwb administrator

设置远程登录(配置权限、写权限、读权限):rabbitmqctl set_permissions -p "/" hwb ".*" ".*" ".*"

41c6fe948a98d93c3c354c483e259c28.png
1d70438949b124a88d7630948f01d74b.png

二、安装pika模块(离线安装)

--安装setuptools

wget https://files.pythonhosted.org/packages/e0/02/2b14188e06ddf61e5b462e216b15d893e8472fca28b1b0c5d9272ad7e87c/setuptools-38.5.2.zip

unzip setuptools-38.5.2.zip

cd setuptools-38.5.2

python setup.py install

--安装pip

wget https://files.pythonhosted.org/packages/69/81/52b68d0a4de760a2f1979b0931ba7889202f302072cc7a0d614211bc7579/pip-18.0.tar.gz

tar -xvf pip-18.0.tar.gz

cd pip-18.0

python setup.py build && python setup.py install

ln -s /usr/local/bin/pip /usr/bin/pip

--安装pika

wget https://files.pythonhosted.org/packages/8c/6d/a526ad96ffb8aa0d3ab7e8660eb1c9fc964a02e7624112d70e4b63fb2bb7/pika-1.1.0.tar.gz

tar -xvf pika-1.1.0.tar.gz

cd pika-1.1.0

python setup.py install


三、安装pika模块(在线安装)

yum install epel-release -y

yum install python-pip -y

pip install pika==0.12

51332497258b7d2214585330873f2f58.png

四、python脚本操作rabbitmq

96615a016bd74774e1c5d6eb6732d480.png

1、生产者程序(rabbitproducer.py)

# -*- coding: utf-8 -*-import pikacredentials = pika.PlainCredentials('hwb', 'fswl@1234')connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1',5672,'/',credentials))channel = connection.channel()queuename="hwb"channel.queue_declare(queue=queuename)channel.basic_publish(exchange='', routing_key=queuename, body='hwb body')print("insert hwb body success")connection.close()
b86d8c278b7d350929bcd3b186bd45a6.png

此时在网页版查看mq队列情况:可以发现队列中有一个未被消费的消息

d769fb0d2e9d4cb627d874c6205c364f.png

2、每秒钟插入一个观察队列情况(queues.py)

# -*- coding: utf-8 -*-import pikaimport timecredentials = pika.PlainCredentials('hwb', 'fswl@1234')connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1',5672,'/',credentials))channel = connection.channel()queuename="hwb"channel.queue_declare(queue=queuename)i = 1while True:  channel.basic_publish(exchange='', routing_key=queuename, body='hwb body {0}'.format( i ))  print("insert hwb body success")  time.sleep(1)  i = i + 1
29a8a346544bd5a89818e3dc095ec013.png

此时在网页版查看mq队列情况:可以发现队列中有12个未被消费的消息

7f12926dfc105eb0bc8ab6d8b44c13d0.png

3、消费者程序(rabbitconsumer.py)

# -*- coding: utf-8 -*-import pikacredentials = pika.PlainCredentials('hwb', 'fswl@1234')connection = pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1',5672,'/',credentials))channel = connection.channel()queuename="hwb"channel.queue_declare(queue=queuename)def callback(ch, method, properties, body):    print("Received %r" % body)channel.basic_consume(callback,queue=queuename,no_ack=True)print('Consume waiting for messages. To exit press CTRL+C')channel.start_consuming()
071c784967a15b0b60979b2a79d839ae.png

此时在网页版查看mq队列情况:

9ebb6c138525b19c8518a6e6e9a6e91c.png

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

46e173fb5b3a5288226a18b597bc0b06.gif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值