好的,我们可以使用官方的APT源来安装RabbitMQ,这样就不需要依赖GitHub。以下是详细的步骤:
1. 更新系统
首先,确保你的系统是最新的。
sudo apt update
sudo apt upgrade -y
2. 安装Erlang
RabbitMQ需要Erlang运行时环境。我们可以使用官方的APT源来安装Erlang。
# 添加RabbitMQ的GPG密钥
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
# 添加RabbitMQ的APT源
echo "deb https://dl.bintray.com/rabbitmq-erlang/debian $(lsb_release -cs) erlang" | sudo tee /etc/apt/sources.list.d/rabbitmq-erlang.list
# 更新APT缓存并安装Erlang
sudo apt update
sudo apt install -y erlang
3. 安装RabbitMQ
接下来,安装RabbitMQ服务器。
# 添加RabbitMQ的GPG密钥
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
# 添加RabbitMQ的APT源
echo "deb https://dl.bintray.com/rabbitmq/debian $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
# 更新APT缓存并安装RabbitMQ
sudo apt update
sudo apt install -y rabbitmq-server
4. 启动RabbitMQ服务
安装完成后,启动RabbitMQ服务并设置开机自启。
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
5. 配置RabbitMQ
启用管理插件
RabbitMQ提供了一个Web管理界面,可以通过启用管理插件来访问。
sudo rabbitmq-plugins enable rabbitmq_management
创建用户并设置权限
为了安全起见,建议创建一个新的用户并为其分配权限。
sudo rabbitmqctl add_user myuser mypassword
sudo rabbitmqctl set_user_tags myuser administrator
sudo rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*"
6. 访问RabbitMQ管理界面
打开浏览器,访问RabbitMQ的Web管理界面。默认情况下,管理界面运行在15672端口。
http://<your-server-ip>:15672
使用刚刚创建的用户名和密码登录。
7. 配置防火墙
确保防火墙允许RabbitMQ所需的端口。默认情况下,RabbitMQ使用5672端口进行AMQP通信,15672端口用于Web管理界面。
sudo ufw allow 5672
sudo ufw allow 15672
8. 验证安装
你可以通过发送和接收消息来验证RabbitMQ是否正常工作。以下是一个简单的Python示例,使用Pika库来发送和接收消息。
安装Pika
pip install pika
发送消息
创建一个名为 send.py
的文件:
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('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()
运行发送脚本:
python send.py
接收消息
创建一个名为 receive.py
的文件:
import pika
def callback(ch, method, properties, body):
print(" [x] Received %r" % body)
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_consume(queue='hello',
auto_ack=True,
on_message_callback=callback)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
运行接收脚本:
python receive.py