手动搭建RabbitMQ服务

docker环境安装RabbitMQ

(因为RabbitMQ是Erlang语言编写的,所以如果想在自己服务手动搭建RabbitMQ环境,需要先安装Erlang的运行环境。这里选择了直接启动一个docker镜像)

1.启动rabbitMQ的docker服务
    docker run -itd  --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
    docker找不到镜像会主动去pull,pull完成过后会主动运行

2. 查看当前docker进程
    docker ps -a

3. 进入容器内部

docker exec -it b815 bash

4. 添加用户密码及权限设置

rabbitmqctl add_user lixiaoxuan 123456

创建完用户后,还没权限访问web UI,需要赋予权限

rabbitmqctl set_user_tags lixiaoxuan administrator

rabbitmqctl set_permissions -p / lixiaoxuan ".*" ".*" ".*"

(具体的用户角色跟权限控制可参考文档https://www.rabbitmq.com/management.html#permissions)

5. 登录RabbitMq管理UI 10.11.60.104:15672

创建一个exchange&queue&binding

exchange='user_action'
queue='user_action_network_request_finished'
routing_key='network_request_finished'

发送消息

 sender.py
#!/usr/bin/env python
# coding=utf-8
import pika
#创建连接
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
#创建通道
channel = connection.channel()
#发布消息
channel.basic_publish(exchange='user_action',routing_key='network_request_finished',body='hello,world!')

print ("Sent 'hello world '")
#断开连接
connection.close()
View Code

消费消息

 receive.py
#!/usr/bin/env python
# coding=utf-8
import pika
#创建连接
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
#创建通道
channel = connection.channel()
#回调函数
def callback(ch,method,properties,body):
    print (" [x] Received %r" % body)
#消费消息
channel.basic_consume(queue='user_action_network_request_finished',auto_ack=True,on_message_callback=callback)
print(' [*] Waiting for messages. To exit press CTRL+C')
#开始消费消息
channel.start_consuming()
View Code

总结

这里只分享了RabbitMQ最基础的知识点,更多内容,建议大家去官网学习

参考https://www.rabbitmq.com/tutorials/tutorial-one-python.html

posted @ 2020-12-22 18:11  非非不可  阅读(271)  评论(0编辑  收藏  举报