RabbitMq在Centos的安装和使用方法

由于公司需要批量发送消息微信模板消息,而单纯采用单线程发送消息太慢,所以决定采用MQ方式异步发送消息

一、先下载erlang/otp 先安装上支持rabbitMq的底层语言包

http://erlang.org/download/otp_src_19.3.tar.gz
tar -zxvf  otp_src_19.3.tar.gz
cd otp_src_19.3
./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac
make && make install

二、底层包安装好了,那么下载RabbitMq,然后使用(RabbitMq,你可以理解为绿色版,不需要安装可以直接使用了)

下载:rabbitmq-server-generic-unix-3.7.5.tar.xz
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.5/rabbitmq-server-generic-unix-3.7.5.tar.xz
tar -zxvf rabbitmq-server-generic-unix-3.7.5.tar.xz
mv rabbitmq-server-generic-unix-3.7.5.tar.xz /usr/local

三、编辑环境变量,让命令可以在liunx直接使用(注意路径,都安装到/usr/local目录下面了)

vi  /etc/profile 编辑环境文件

#ERLANG ERLANG_HOME
=/usr/local/erlang export PATH=$PATH:$ERLANG_HOME/bin export ERLANG_HOME #RABBIT RABBITMQ_HOME=/usr/local/rabbitmq_server-3.7.5 export PATH=$PATH:$RABBITMQ_HOME/sbin export RABBITMQ_HOME

source /etc/profile 保存使环境变量生效

四、查看RabbitMq的状态和开启

rabbitmqctl status
rabbitmqctl start

五、开启WEB端管理界面

rabbitmqctl start_app
rabbitmq-plugins enable rabbitmq_management

接下来:浏览器输入你服务器的IP和端口号就可以管理RabbitMq
http://115.*.*.*:15672/

账号和密码默认:
guest guest

当然你也可以自己创建账号:

rabbitmqctl add_user mqmsg 123456
rabbitmqctl  set_user_tags mqmsg administrator
rabbitmqctl set_permissions -p "/" mqmsg ".*" ".*" ".*"
rabbitmqctl list_users

账号就创建好了,下面py语句修改成你用户名和密码即可

六、python安装Rabbit的插件pika(注意p2和p3的版本是不一样的)

pip install pika==0.12.0 (要求python2.7以上)

pip install pika==0.11.0 (要求python2.6以上)

根据你py版本进行安装插件

七、发送数据

# coding=utf-8
import pika #建立连接,RabbitMq的账号和密码 userx
=pika.PlainCredentials("guest","guest") conn=pika.BlockingConnection(pika.ConnectionParameters("192.168.43.10",5672,'/',credentials=userx)) #开辟管道 channelx=conn.channel() #声明队列,参数为队列名 channelx.queue_declare(queue="dongchannel11") #发送数据,发送一条,如果要发送多条则复制此段 channelx.basic_publish(exchange="", routing_key="dongchannel11",# 队列名 body="dongxiaodongtodata3" # 发送的数据 ) print("--------发送数据完成-----------") #关闭连接 conn.close()

八、接收数据

# coding=utf-8
import pika #建立连接,RabbitMq的账号和密码 userx
=pika.PlainCredentials("guest","guest") conn=pika.BlockingConnection(pika.ConnectionParameters("192.168.43.10",5672,'/',credentials=userx)) #开辟管道 channelx=conn.channel() #声明队列,参数为队列名 channelx.queue_declare(queue="dongchannel11") #消息处理函数,执行完成才说明接收完成,此时才可以接收下一条,串行 def dongcallbackfun(v1,v2,v3,bodyx): print("得到的数据为:",bodyx) #接收准备 channelx.basic_consume(dongcallbackfun, #收到消息的回调函数 queue="dongchannel11", #队列名 no_ack=True #是否发送消息确认 ) print("-------- 开始接收数据 -----------") #开始接收消息 channelx.start_consuming()

 

posted @ 2020-07-17 16:34  feimengv  阅读(355)  评论(0编辑  收藏  举报