在CentOS上搭建消息隊列系統,你可以選擇多種消息隊列中間件,如RabbitMQ、Kafka、ActiveMQ等。以下是使用RabbitMQ作為示例的步驟:
RabbitMQ是用Erlang編寫的,因此首先需要安裝Erlang環境。
sudo yum install -y erlang
你可以通過yum直接安裝RabbitMQ,或者從源碼編譯安裝。這里推薦使用yum安裝。
sudo yum install -y rabbitmq-server
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
RabbitMQ的配置文件通常位于 /etc/rabbitmq/
目錄下。你可以根據需要進行配置。
sudo rabbitmq-plugins enable rabbitmq_management
訪問 http://<your_server_ip>:15672/
,默認用戶名和密碼都是 guest
。
你可以通過命令行工具 rabbitmqctl
來驗證RabbitMQ是否正常運行。
sudo rabbitmqctl status
你可以使用 rabbitmqadmin
工具或者直接通過命令行來創建隊列和交換機。
sudo rabbitmqadmin declare queue name=my_queue durable=true
sudo rabbitmqadmin declare exchange name=my_exchange type=direct durable=true
sudo rabbitmqadmin declare binding source=my_exchange destination=my_queue routing_key=my_routing_key
你可以編寫簡單的生產者和消費者腳本來測試消息隊列的功能。
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='my_queue')
channel.basic_publish(exchange='my_exchange',
routing_key='my_routing_key',
body='Hello World!')
print(" [x] Sent 'Hello World!'")
connection.close()
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='my_queue')
def callback(ch, method, properties, body):
print(f" [x] Received {body}")
channel.basic_consume(queue='my_queue',
on_message_callback=callback,
auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
運行生產者和消費者腳本來測試消息隊列的功能。
以上步驟展示了如何在CentOS上搭建RabbitMQ消息隊列系統。你可以根據需要選擇其他消息隊列中間件,并參考相應的文檔進行安裝和配置。