centos

如何在CentOS上配置Python消息队列

小樊
46
2025-08-16 22:54:36
栏目: 编程语言

在CentOS上配置Python消息队列,你可以选择多种消息队列系统,如RabbitMQ、Redis、ZeroMQ等。以下是使用RabbitMQ作为消息队列系统的基本步骤:

1. 安装Erlang

RabbitMQ是用Erlang编写的,因此首先需要安装Erlang。

sudo yum install erlang

2. 安装RabbitMQ服务器

安装RabbitMQ服务器:

sudo yum install rabbitmq-server

启动RabbitMQ服务:

sudo systemctl start rabbitmq-server

设置RabbitMQ开机自启动:

sudo systemctl enable rabbitmq-server

3. 启用管理插件

启用RabbitMQ的管理插件,方便通过Web界面管理:

sudo rabbitmq-plugins enable rabbitmq_management

访问 http://<your_server_ip>:15672/,默认用户名和密码都是 guest

4. 安装Python客户端库

使用pip安装RabbitMQ的Python客户端库:

pip install pika

5. 编写生产者和消费者代码

生产者代码示例

import pika

# 连接到RabbitMQ服务器
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()

消费者代码示例

import pika

# 连接到RabbitMQ服务器
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

# 声明一个队列
channel.queue_declare(queue='hello')

# 定义回调函数
def callback(ch, method, properties, body):
    print(f" [x] Received {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()

6. 运行生产者和消费者

在两个终端分别运行生产者和消费者脚本:

# 终端1:运行生产者
python producer.py

# 终端2:运行消费者
python consumer.py

你应该会看到消费者终端接收到生产者发送的消息。

7. 配置防火墙

如果你的CentOS服务器有防火墙,确保开放RabbitMQ的默认端口(5672):

sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent
sudo firewall-cmd --reload

通过以上步骤,你就可以在CentOS上成功配置并使用Python消息队列了。根据需要,你可以进一步探索RabbitMQ的高级功能,如交换机、绑定、持久化等。

0
看了该问题的人还看了