linux

RabbitMQ消息队列Linux实现

小樊
87
2025-02-17 22:28:26
栏目: 智能运维

在Linux上实现RabbitMQ消息队列,可以按照以下步骤进行:

1. 安装RabbitMQ服务器

使用Erlang安装RabbitMQ

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

# 添加Erlang解决方案仓库
echo "deb http://packages.erlang-solutions.com/ubuntu $(lsb_release -cs) contrib" | sudo tee /etc/apt/sources.list.d/erlang.list

# 更新包列表
sudo apt-get update

# 安装Erlang
sudo apt-get install -y erlang-base erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssl erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl

# 验证Erlang安装
erl -version

安装RabbitMQ服务器

# 添加RabbitMQ解决方案仓库
echo "deb https://dl.bintray.com/rabbitmq/debian $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list

# 更新包列表
sudo apt-get update

# 安装RabbitMQ服务器
sudo apt-get install -y rabbitmq-server

# 启动RabbitMQ服务
sudo systemctl start rabbitmq-server

# 设置RabbitMQ开机自启动
sudo systemctl enable rabbitmq-server

2. 配置RabbitMQ

启用管理插件

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 ".*" ".*" ".*"

启动RabbitMQ管理界面

默认情况下,RabbitMQ管理界面可以通过浏览器访问 http://<your_server_ip>:15672/,使用刚刚创建的用户进行登录。

3. 使用RabbitMQ

生产者示例(Python)

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost', 5672, '/', pika.PlainCredentials('myuser', 'mypassword')))
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)

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost', 5672, '/', pika.PlainCredentials('myuser', 'mypassword')))
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()

4. 监控和管理

使用RabbitMQ管理界面可以监控队列状态、消息数量、消费者连接等信息。此外,还可以使用命令行工具进行更详细的监控和管理。

# 查看队列状态
sudo rabbitmqctl list_queues name messages ready consumers

# 查看连接状态
sudo rabbitmqctl list_connections

通过以上步骤,你可以在Linux上成功安装、配置和使用RabbitMQ消息队列。

0
看了该问题的人还看了