概述
今天主要介绍三个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
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
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
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 ".*" ".*" ".*"
二、安装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
四、python脚本操作rabbitmq
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()
此时在网页版查看mq队列情况:可以发现队列中有一个未被消费的消息
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
此时在网页版查看mq队列情况:可以发现队列中有12个未被消费的消息
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()
此时在网页版查看mq队列情况:
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~