RabbitMQ学习笔记(一):环境搭建

声明:
本文章是使用的python来操作rabbitmq
系统是Ubuntu 18.04

环境搭建

第一步:Ubuntu安装RabbitMQ

(1)由于RabbitMQ使用的是erlang编写的,所以我们需要先安装erlang
命令:sudo apt-get install erlang

(2)查看erlang版本,以确认erlang是否安装成功
命令:sudo erl 或者 erl

(3)安装必要的依赖
命令:sudo apt-get install erlang-manpages erlang-doc erlang-nox

(4)安装RabbitMQ服务
命令:sudo apt-get install rabbitmq-server
如果安装不成功就输入:
sudo apt-get install -y rabbitmq-server

(5)RabbitMQ服务的常用命令
启动服务:service rabbitmq-server start
停止服务:service rabbitmq-server stop
查看状态:service rabbitmq-server status
后台启动:service rabbitmq-server -detached
重启服务:service rabbitmq-server restart

第二步:创建Rabbitmq用户

其实rabbitmq是默认给了一个用户的,用户名/密码为guest/guest
但是这个用户毕竟不是长久之计,我们需要创建自己的用户

(1)创建新用户
命令:sudo rabbitmqctl add_user 用户名 密码
例子:sudo rabbitmqctl add_user testuser 123456

(2)设置管理员
命令:sudo rabbitmqctl set_user_tags 用户名 administrator
设置成管理员之后,用户就可以远程登陆

(3)权限设置

命令:sudo rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"

第三步:安装可视化插件

rabbitmq的web可视化插件Management Plugin是一个可是动态显示rabbitmq服务状态的可视化插件,其访问地址为:
http://localhost:15672
输入你的用户名及密码即可登陆
(1)安装插件
命令:sudo rabbitma-plugins enable rabbitrmq_management

(2)重启服务
命令:service rabbitmq-server restart

(3)用户登陆
浏览器输入 http://localhost:15672进入,输入用户名及密码登陆
在这里插入图片描述
如果你看到了上面这个页面并成功的登陆,就说明你的环境已经搭建完成了。

接下来我们再次的验证一下

初窥RabbitMQ

(1)安装pika模块,该模块是python用来操作rabbitmq的模块
命令:pip3 install pika

我们先创建一个测试的文件夹rabbit_test
命令:mkdir rabbit_test
cd rabbit_test
touch send.py
touch receive.py
顾名思义,send.py是负责发布消息的
receive.py是负责接受处理消息的

(2)编写send.py

	import pika
    
    # 创建连接
    conn = pika.BlockingConnection(pika.ConnectionParameters("localhost"))
    channel = conn.channel()
    # 声明队列
    channel.queue_declare(queue="hello")
    # 向队列中发布消息
    # exchange:交换机名字,目前用不到
    # routing_key:路由键,指定队列名字
    # body:消息内容
    channel.basic_publish(exchange="",routing_key="hello",body="Hello World!")
    print("message Hello World has been sent")
    # 类似于pymsql 使用完毕之后也需要调用close()方法来关闭连接
    conn.close()

(3)编写recieve.py

import pika

conn = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = conn.channel()
channel.queue_declare(queue='hello')

# 收到消息之后调用callback函数
def callback(ch,method,properties,body):
    print("receive %s"%body)
# 接收到消息,进行消费
# queue:指定消息队列
# on_message_callback:接收到消息之后回调哪个函数
# auto_ack:自动消息应答机制,可以先用True跑一遍,再换成False试试看什么效果
channel.basic_consume(queue="hello",on_message_callback=callback,auto_ack=True)
print("waiting for new message")
# 开始消费(也可以理解为:开始接收消息)
channel.start_consuming()

(4)先运行send.py去发布一条消息,之后运行recieve.py接收消息。
或者先运行recieve.py再运行send.py也可以
如果你的recieve.py接收到b“Hello World!”,那么恭喜你,你的环境算是搭建成功了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值