目录
1 概述
RabbitMQ是一款使用Erlang语言开发的,实现AMQP(高级消息队列协议)的开源消息中间件。RabbitMQ由Erlang语言开发,Erlang语言用于并发及分布式系统的开发, OTP(OpenTelecom Platform)作为Erlang语言的一部分,包含了很多基于Erlang开发的中间件及工具库,安装RabbitMQ需要首先安装Erlang/OTP,并保持版本匹配。RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQ
浪潮信息KOS是浪潮信息基于Linux Kernel、OpenAnolis等开源技术自主研发的一款服务器操作系统,支持x86、ARM等主流架构处理器,性能和稳定性居于行业领先地位,具备成熟的 CentOS 迁移和替换能力,可满足云计算、大数据、分布式存储、人工智能、边缘计算等应用场景需求。详细介绍见官网连接浪潮信息云峦服务器操作系统KeyarchOS_KOS服务器操作系统-浪潮信息
2 安装准备
2.1 操作系统环境
版本信息:KeyarchOS 5.8sp1
硬件平台:X86_64
2.2 Erlang版本
Erlang-24.3.4.12
https://www.erlang-solutions.com/downloads/#
2.3 RabbitMQ版本
Rabbitmq-3.10.6
https://www.rabbitmq.com/download.html
3 安装
3.1 安装socat
由于安装RabbitMQ时需要依赖socat插件,socat已经在KOS AppSteam仓库发布,可以通过yum install直接安装:
yum install –y socat
3.2 安装Erlang
1、官网下载安装包:erlang-24.3.4.12-1.el8.x86_64.rpm
https://www.erlang-solutions.com/downloads/#
2、在存放目录下解压下载的erlang安装包
rpm -Uvh erlang-24.3.4.12-1.el8.x86_64.rpm
3、安装erlang
yum install erlang -y
3.3 安装RabbitMQ
1、官网下载安装包:rabbitmq-server-3.10.6-1.el8.noarch.rpm
https://www.rabbitmq.com/download.html
2、在存放目录下解压下载的rabbitmq安装包
rpm -Uvh rabbitmq-server-3.10.6-1.el8.noarch.rpm
3、安装rabbitmq
yum install rabbitmq-server
4、启动rabbitmq服务
systemctl start rabbitmq-server
5、开启管理页面插件
rabbitmq-plugins enable rabbitmq_management
4 运行RabbitMQ
4.1 查看RabbitMQ服务状态
systemctl status rabbitmq-server
4.2 使用python脚本生成消息
1、首先安装pika库:
pip3 install pika
2、编写脚本send.py用来生成消息:
cat << EOF > send.py
#!/usr/bin/env python
import pika
connection = pika.BlockingConnection(
pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
print(" [x] Sent 'Hello World!'")
connection.close()
EOF
3、执行send.py产生消息:
python3 send.py
4.3 使用python脚本接受消息
1、编写脚本receive.py用来接收消息:
cat << EOF > receive.py
#!/usr/bin/env python
import pika, sys, os
def main():
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
def callback(ch, method, properties, body):
print(" [x] Received %r" % body)
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
print('Interrupted')
try:
sys.exit(0)
except SystemExit:
os._exit(0)
EOF
2、执行脚本接收消息
python3 receive.py
4.4 访问RabbitMQ控制台
浏览器访问localhost:15672进入rabbitmq控制台:
账号密码输入guest即可登录: