mac安装rabbitmq及python的简单连接

2021-11-22 15:54:43 浏览数 (1)

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

MAC安装rabbitmq:

代码语言:javascript复制
  brew install rabbitmq
代码语言:javascript复制
   cd /usr/local/Cellar/rabbitmq/
   cd 3.8.1/

启用rabbitmq management插件

代码语言:javascript复制
   sudo sbin/rabbitmq-plugins enable rabbitmq_management

然后

代码语言:javascript复制
sudo vi /etc/profile

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

代码语言:javascript复制
export RABBIT_HOME=/usr/local/Cellar/rabbitmq/3.8.1
export PATH=$PATH:$RABBIT_HOME/sbin

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

代码语言:javascript复制
source /etc/profile

最后:

代码语言:javascript复制
后台启动
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。

代码语言:javascript复制
''' 生产一条消息 '''
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()
代码语言:javascript复制
''' 消费 '''
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结束监听

0 人点赞