首页主机资讯Ubuntu RabbitMQ如何进行消息路由设置

Ubuntu RabbitMQ如何进行消息路由设置

时间2025-11-03 10:48:04发布访客分类主机资讯浏览728
导读:在Ubuntu上设置RabbitMQ的消息路由,主要涉及到以下几个方面: 1. 安装RabbitMQ 首先,确保你已经在Ubuntu上安装了RabbitMQ。你可以使用以下命令来安装: sudo apt update sudo apt in...

在Ubuntu上设置RabbitMQ的消息路由,主要涉及到以下几个方面:

1. 安装RabbitMQ

首先,确保你已经在Ubuntu上安装了RabbitMQ。你可以使用以下命令来安装:

sudo apt update
sudo apt install rabbitmq-server

2. 启动RabbitMQ服务

安装完成后,启动RabbitMQ服务:

sudo systemctl start rabbitmq-server

并设置开机自启动:

sudo systemctl enable rabbitmq-server

3. 创建虚拟主机

为了更好地管理RabbitMQ的资源和权限,建议创建一个或多个虚拟主机(vhost)。

sudo rabbitmqctl add_vhost my_vhost

4. 创建交换机(Exchange)

交换机是RabbitMQ中用于接收生产者发送的消息并根据规则分发到队列的组件。常见的交换机类型有direct、topic、fanout和headers。

创建Direct交换机

sudo rabbitmqctl set_policy ha-all "^my_direct_exchange$" '{
"type":"direct","durable":false,"auto-delete":false,"arguments":{
}
}
'

创建Topic交换机

sudo rabbitmqctl set_policy ha-all "^my_topic_exchange$" '{
"type":"topic","durable":false,"auto-delete":false,"arguments":{
}
}
'

创建Fanout交换机

sudo rabbitmqctl set_policy ha-all "^my_fanout_exchange$" '{
"type":"fanout","durable":false,"auto-delete":false,"arguments":{
}
}
'

5. 创建队列

队列是RabbitMQ中用于存储消息的容器。

sudo rabbitmqctl add_queue my_queue --vhost my_vhost

6. 绑定队列到交换机

将队列绑定到交换机,并指定路由键(routing key)。

绑定Direct交换机

sudo rabbitmqctl set_binding my_queue my_direct_exchange "my_routing_key" --vhost my_vhost

绑定Topic交换机

sudo rabbitmqctl set_binding my_queue my_topic_exchange "my_routing_key" --vhost my_vhost

7. 生产者发送消息

生产者可以通过RabbitMQ客户端库发送消息到交换机。

使用Python示例

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

channel.exchange_declare(exchange='my_direct_exchange', exchange_type='direct', durable=False)

channel.basic_publish(exchange='my_direct_exchange',
                      routing_key='my_routing_key',
                      body='Hello World!')

print(" [x] Sent 'Hello World!'")
connection.close()

8. 消费者接收消息

消费者可以通过RabbitMQ客户端库接收消息。

使用Python示例

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

channel.exchange_declare(exchange='my_direct_exchange', exchange_type='direct', durable=False)
result = channel.queue_declare(queue='', exclusive=True)
queue_name = result.method.queue

channel.queue_bind(exchange='my_direct_exchange',
                   queue=queue_name,
                   routing_key='my_routing_key')

print(' [*] Waiting for messages. To exit press CTRL+C')

channel.basic_consume(queue=queue_name,
                      on_message_callback=lambda ch, method, properties, body: print(f" [x] Received {
body}
    "),
                      auto_ack=True)

channel.start_consuming()

通过以上步骤,你可以在Ubuntu上设置RabbitMQ的消息路由。根据具体需求选择合适的交换机类型和路由键,以实现灵活的消息分发。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu RabbitMQ如何进行消息路由设置
本文地址: https://pptw.com/jishu/740596.html
Ubuntu RabbitMQ如何实现消息确认机制 RabbitMQ在Ubuntu上的插件如何安装与使用

游客 回复需填写必要信息