简介:TG@luotuoemo
本文由阿里云代理商【聚搜云】撰写
一、前提条件
-
购买腾讯云服务器:
- 确保已购买一台或多台腾讯云服务器(CVM),并完成初始化。
-
配置安全组规则:
-
在腾讯云控制台中,为服务器配置安全组规则,放通以下端口:
- 5672:RabbitMQ 服务端口。
- 15672:RabbitMQ 管理界面端口。
-
二、安装 Erlang
RabbitMQ 基于 Erlang 语言开发,因此需要先安装 Erlang。
-
安装依赖包:
bash复制
yum -y install make gcc gcc-c++ m4 ncurses-devel openssl-devel unixODBC-devel -
下载 Erlang 安装包:
bash复制
wget http://erlang.org/download/otp_src_19.3.tar.gz -
解压并安装 Erlang:
bash复制
tar xzf otp_src_19.3.tar.gz cd otp_src_19.3 ./configure --prefix=/usr/local/erlang --without-javac make && make install -
配置环境变量:
bash复制
echo 'export PATH=$PATH:/usr/local/erlang/bin' >> ~/.bashrc source ~/.bashrc
三、安装 RabbitMQ Server
-
下载 RabbitMQ Server 安装包:
bash复制
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_9/rabbitmq-server-3.6.9-1.el7.noarch.rpm -
导入签名密钥:
bash复制
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc -
安装 RabbitMQ Server:
bash复制
yum install rabbitmq-server-3.6.9-1.el7.noarch.rpm -
启动 RabbitMQ 服务:
bash复制
systemctl enable rabbitmq-server systemctl start rabbitmq-server
四、配置 RabbitMQ
-
删除默认用户:
bash复制
rabbitmqctl delete_user guest -
创建新用户并设置权限:
bash复制
rabbitmqctl add_user 用户名 密码 rabbitmqctl set_user_tags 用户名 administrator rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*" -
启用管理插件:
bash复制
rabbitmq-plugins enable rabbitmq_management
五、访问管理界面
-
访问 RabbitMQ 管理界面:
- 打开浏览器,访问
http://<服务器IP>:15672。 - 使用创建的用户名和密码登录。
- 打开浏览器,访问
六、测试消息队列
-
生产者发送消息:
Python复制
import pika connection = pika.BlockingConnection(pika.ConnectionParameters('服务器IP', 5672, '/', pika.PlainCredentials('用户名', '密码'))) channel = connection.channel() channel.queue_declare(queue='hello') channel.basic_publish(exchange='', routing_key='hello', body='Hello World!') connection.close() -
消费者接收消息:
Python复制
import pika def callback(ch, method, properties, body): print(f"Received {body}") connection = pika.BlockingConnection(pika.ConnectionParameters('服务器IP', 5672, '/', pika.PlainCredentials('用户名', '密码'))) channel = connection.channel() channel.queue_declare(queue='hello') channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True) print('Waiting for messages. To exit press CTRL+C') channel.start_consuming()