mac安装rabbitmq及python的简单连接

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。
RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。
所有主要的编程语言均有与代理接口通讯的客户端库。


MAC安装rabbitmq:

  brew install rabbitmq

在这里插入图片描述

   cd /usr/local/Cellar/rabbitmq/
   cd 3.8.1/

在这里插入图片描述
启用rabbitmq management插件

   sudo sbin/rabbitmq-plugins enable rabbitmq_management

然后

sudo vi /etc/profile

打开该文件。 加上下面的两行。 (保存不了就用文本工具打开)

export RABBIT_HOME=/usr/local/Cellar/rabbitmq/3.8.1
export PATH=$PATH:$RABBIT_HOME/sbin

在这里插入图片描述

配置环境变量后,立即生效

source /etc/profile

最后:

后台启动
sudo rabbitmq-server -detached  
查看状态
sudo rabbitmqctl status 
浏览器内输入 http://localhost:15672,默认的用户名密码都是guest,登录后可以在Admin那一列菜单内添加自己的用户
sudo rabbitmqctl stop 关闭

安装完成

浏览器打开: http://localhost:15672
默认的账号密码是 :
账号: guest
密码: guest


添加一个管理用户:

点击Admin,add a user
输入用户名密码,重复密码,输入 tags,点击 add user
在这里插入图片描述
然后点击之前添加的用户:
设置权限,如下即可。
在这里插入图片描述


管理界面

在这里插入图片描述

在这里插入图片描述


python 简单连接代码:

先 pip install pika 。 pika用来连接mq。

''' 生产一条消息 '''
import pika
import time
credentials = pika.PlainCredentials('spider', 'spider')	# 你创建的账号和密码
parameters = pika.ConnectionParameters(host="localhost",
                                       credentials=credentials)
connection = pika.BlockingConnection(parameters)  # 连接 RabbitMQ

channel = connection.channel()  # 创建频道

queue = channel.queue_declare(queue='hello')  # 声明或创建队列

message = time.strftime('%H:%M:%S', time.localtime())
channel.basic_publish(exchange='',
                      routing_key='hello',
                      body=message)
print('send message: %s' % message)
connection.close()

在这里插入图片描述

''' 消费 '''
import pika
# 接收处理消息的回调函数      # 回调函数get消息体
def ConsumerCallback (channel, method, properties, body):
    print("Received %s" % body)

credentials = pika.PlainCredentials('spider', 'spider')
parameters = pika.ConnectionParameters(host="localhost",credentials=credentials)
connection = pika.BlockingConnection(parameters)    # 连接 RabbitMQ
channel = connection.channel()                      # 创建频道
queue = channel.queue_declare(queue='hello')        # 声明或创建队列

channel.basic_consume(queue='hello',on_message_callback=ConsumerCallback,auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C') 
channel.start_consuming()  # 创建死循环,监听消息队列,可使用CTRL+C结束监听

在这里插入图片描述
在这里插入图片描述

发布了187 篇原创文章 · 获赞 1055 · 访问量 35万+

猜你喜欢

转载自blog.csdn.net/weixin_43582101/article/details/102898010