1.安装环境:
ubuntu 16.04
erlang 21.2
rabbitmq 3.6.2
2.安装过程
2.1安装erlang
下载地址:http://www.erlang.org/downloads/21.2
将下载的otp_src_21.2.tar.gz拷贝到/opt文件夹下并解压缩。
在/opt路径下新建文件夹erlang。
cd /opt/opt_src_21.2/ 配置安装路径编译代码 $ ./configure --prefix=/opt/erlang
执行编译结果 $ make && make install
配置环境变量 $ vim /etc/profile 添加export PATH=$PATH:/opt/erlang/bin
使得文件生效 $ source /etc/profile
2.2安装rabbitmq
下载地址:http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.2/
将下载的rabbitmq-server-generic-unix-3.6.2.tar.xz拷贝到/opt文件夹下并解压缩。
配置环境变量 $ vim /etc/profile 添加export PATH=$PATH:/opt/rabbitmq_server-3.6.2/sbin
使得文件生效 $ source /etc/profile
cd /opt/rabbitmq_server-3.6.2/sbin
进入sbin 启动服务:rabbitmq-server -detached
查看服务状态:rabbitmqctl status
关闭服务:rabbitmqctl stop
3.测试(python)
pip install pika
两个文件,作用分别为发送和接受。
send.py
import pika
# 新建连接,rabbitmq安装在本地则hostname为'localhost'
hostname = 'localhost'
parameters = pika.ConnectionParameters(hostname)
connection = pika.BlockingConnection(parameters)
# 创建通道
channel = connection.channel()
# 声明一个队列,生产者和消费者都要声明一个相同的队列,用来防止万一某一方挂了,另一方能正常运行
channel.queue_declare(queue='hh')
body = "huazi_w"
# 交换机; 队列名,写明将消息发往哪个队列; 消息内容
# routing_key在使用匿名交换机的时候才需要指定,表示发送到哪个队列
channel.basic_publish(exchange='', routing_key='hh', body=body)
print(body)
connection.close()
receive.py
import pika
hostname = 'localhost'
parameters = pika.ConnectionParameters(hostname)
connection = pika.BlockingConnection(parameters)
# 创建通道
channel = connection.channel()
channel.queue_declare(queue='hh')
def callback(ch, method, properties, body):
print(body)
# 告诉rabbitmq使用callback来接收信息
channel.basic_consume(callback, queue='hh', no_ack=True)
# 开始接收信息,并进入阻塞状态,队列里有信息才会调用callback进行处理,按ctrl+c退出
print('Waiting for messages......')
channel.start_consuming()
4.监视管理
开启管理页面插件:
rabbitmq-plugins enable rabbitmq_management
登录rabbitmq管理界面:
在安装mq的机器上的浏览器输入地址:http://localhost:15672/ 默认用户名:guest ;密码:guest
关闭:
rabbitmq-plugins disable rabbitmq_management
做个俗人,贪财好色,一身正气、、、、