centos

CentOS中消息队列怎么用

小樊
58
2025-06-26 14:55:28
栏目: 智能运维

在CentOS系统中,消息队列是一种进程间通信(IPC)或同一主机上不同进程之间的通信方法。它允许应用程序异步地发送和接收消息。CentOS支持多种消息队列系统,包括RabbitMQ、ActiveMQ、ZeroMQ等。以下是在CentOS中使用RabbitMQ作为消息队列服务的基本步骤:

安装RabbitMQ

  1. 更新系统

    sudo yum update -y
    
  2. 安装Erlang(RabbitMQ依赖Erlang):

    sudo yum install -y erlang
    
  3. 添加RabbitMQ仓库

    sudo tee /etc/yum.repos.d/rabbitmq.repo <<EOF
    

[rabbitmq-server] name=RabbitMQ repository for CentOS/$basearch baseurl=http://rpm.rabbitmq.com/yum/rabbitmq-server/v3.8/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.rabbitmq.com/rabbitmq-release-signing-key.asc EOF


4. **安装RabbitMQ**:
```bash
sudo yum install -y rabbitmq-server
  1. 启动并启用RabbitMQ服务

    sudo systemctl start rabbitmq-server
    sudo systemctl enable rabbitmq-server
    
  2. 配置防火墙(如果需要):

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

使用RabbitMQ

  1. 启用管理插件(可选,方便通过Web界面管理):

    sudo rabbitmq-plugins enable rabbitmq_management
    
  2. 访问管理界面: 打开浏览器,访问 http://your_server_ip:15672,默认用户名和密码都是 guest

  3. 创建队列: 可以通过管理界面或命令行创建队列。

    sudo rabbitmqadmin declare queue name=my_queue durable=true
    
  4. 发送消息: 使用 rabbitmqadmin 或编写客户端程序发送消息。

    echo "Hello, World!" | sudo rabbitmqadmin publish routing_key=my_queue
    
  5. 接收消息: 使用 rabbitmqadmin 或编写客户端程序接收消息。

    sudo rabbitmqadmin get queue=my_queue
    

编写客户端程序

你可以使用多种编程语言编写RabbitMQ客户端程序,例如Python、Java、Go等。以下是一个简单的Python示例:

import pika

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

# 声明队列
channel.queue_declare(queue='my_queue', durable=True)

# 发送消息
channel.basic_publish(exchange='',
                      routing_key='my_queue',
                      body='Hello, World!',
                      properties=pika.BasicProperties(
                         delivery_mode=2,  # 使消息持久化
                      ))
print(" [x] Sent 'Hello, World!'")

# 关闭连接
connection.close()

接收消息的Python示例:

import pika

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

# 声明队列
channel.queue_declare(queue='my_queue', durable=True)

# 定义回调函数
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作为消息队列服务。根据具体需求,你可以选择其他消息队列系统并进行相应的配置和使用。

0
看了该问题的人还看了