步驟1: 創建云電腦實例
選擇你的云服務提供商并創建一個虛擬機實例。對于RabbitMQ,建議至少選擇2核CPU和4GB內存的配置。確保選擇一個支持的操作系統,例如Ubuntu 20.04 LTS。
步驟2: 安裝RabbitMQ
登錄到你的云電腦實例,然后運行以下命令來安裝RabbitMQ及其依賴項。
# 添加Erlang的官方倉庫,RabbitMQ依賴于Erlang運行環境
wget -O- ht*ps://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add -
echo "deb ht*ps://packages.erlang-solutions.com/ubuntu $(lsb_release -sc) contrib" | sudo tee /etc/apt/sources.list.d/erlang.list
# 更新倉庫信息并安裝Erlang
sudo apt update
sudo apt install -y erlang
# 添加RabbitMQ的官方APT倉庫
echo "deb ht*ps://dl.bintray.com/rabbitmq-erlang/debian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
wget -O- ht*ps://w*w.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
# 安裝RabbitMQ服務器
sudo apt update
sudo apt install -y rabbitmq-server
# 啟動RabbitMQ服務
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
步驟3: 配置RabbitMQ
RabbitMQ的默認配置通常就足夠了,但是為了提高安全性,我們應該創建用戶并設置權限。
# 啟用RabbitMQ的管理插件
sudo rabbitmq-plugins enable rabbitmq_management
# 創建管理員用戶(替換'admin'和'strongpassword'為你自己的用戶名和密碼)
sudo rabbitmqctl add_user admin strongpassword
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
步驟4: 保護RabbitMQ
為了保護你的RabbitMQ服務器,應該設置防火墻規則來限制訪問,并配置SSL/TLS。
# 限制端口訪問(以UFW為例)
sudo ufw allow 5672 # RabbitMQ AMQP端口
sudo ufw allow 15672 # RabbitMQ管理界面端口
步驟5: 測試RabbitMQ
現在,我們可以測試RabbitMQ是否正常工作。我們將發送和接收一條簡單的消息。
# 在RabbitMQ服務器上安裝Python和Pika庫
sudo apt install -y python3 python3-pip
pip3 install pika
# 創建一個Python腳本來發送消息
echo "import pika
credentials = pika.PlainCredentials('admin', 'strongpassword')
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost', 5672, '/', credentials))
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()" > send.py
# 創建一個Python腳本來接收消息
echo "import pika
credentials = pika.PlainCredentials('admin', 'strongpassword')
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost', 5672, '/', credentials))
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()" > receive.py
# 運行接收腳本
python3 receive.py
# 在另一個終端,運行發送腳本
python3 send.py
如果一切正常,你應該在接收腳本的終端看到 "Hello World!" 消息。
結語
部署RabbitMQ到云電腦上是一個相對簡單的過程。通過這個基礎的設置,你已經能夠開始在你的分布式應用中使用RabbitMQ進行消息傳遞了。然而,這只是開始。在生產環境中,你可能需要考慮集群配置、高可用性、監控和日志管理等高級主題。希望本教程能為你提供一個良好的起點。