searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

RabbitMQ常用概念介绍

2023-08-25 23:11:35
7
0

RabbitMQ 是一个常用的消息中间件,用于在应用程序和服务之间传递消息。在 RabbitMQ 中,有一些重要的概念需要理解。Producer 是发送消息到 RabbitMQ 的应用程序或服务,它将消息发布到交换器,并通过路由键将消息发送到特定的队列。Consumer 是订阅并处理队列中的消息的应用程序或服务,在连接到 RabbitMQ Broker 后,它监听相关队列以接收消息并进行处理。Queue 是用于存储消息的数据结构,它实现了先进先出的原则。Exchange 是消息的接收和分发中心,Producer 将消息发布到 Exchange,并根据路由规则将其路由到与之绑定的队列。Broker 是 RabbitMQ 的核心角色,负责处理消息的路由和传递。

1. Producer(生产者):Producer 是发送消息到 RabbitMQ 的应用程序或服务。它使用 RabbitMQ 客户端库与 RabbitMQ Broker 进行交互,并将消息发送到交换器。

```python
import pika

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

channel.basic_publish(
    exchange='my_exchange',
    routing_key='my_routing_key',
    body='Hello, RabbitMQ!'
)

connection.close()
```

2. Consumer(消费者):Consumer 是订阅并处理队列中的消息的应用程序或服务。它连接到 RabbitMQ Broker 并监听相关队列以接收消息。

```python
import pika

def callback(ch, method, properties, body):
    print("Received message:", body)

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

channel.basic_consume(queue='my_queue', on_message_callback=callback, auto_ack=True)

channel.start_consuming()

connection.close()
```

3. Queue(队列):Queue 是 RabbitMQ 用于存储消息的数据结构。Producer 将消息发送到 Exchange,然后 Exchange 将消息路由到一个或多个与之绑定的队列中。

```python
import pika

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

channel.queue_declare(queue='my_queue')

channel.basic_publish(
    exchange='',
    routing_key='my_queue',
    body='Hello, RabbitMQ!'
)

connection.close()
```

4. Exchange(交换器):Exchange 是消息的接收和分发中心。Producer 发布消息到 Exchange,Exchange 根据特定的路由规则将消息路由到与之绑定的队列中。

```python
import pika

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

channel.exchange_declare(exchange='my_exchange', exchange_type='direct')

channel.basic_publish(
    exchange='my_exchange',
    routing_key='my_routing_key',
    body='Hello, RabbitMQ!'
)

connection.close()
```

5. Broker(代理服务器):Broker 是 RabbitMQ 中扮演核心角色的消息中间件服务器。Producer 发送消息到 Broker,Consumer 从 Broker 拉取和处理消息。

6. Routing Key(路由键):Producer 在发布消息时使用 Routing Key 指定该消息的目标队列。Exchange 根据 Routing Key 将消息路由到与之匹配的队列中。

7. Binding Key(绑定键):Consumer 在向 Exchange 绑定队列时可使用 Binding Key。Binding Key 指定了该消费者关注的特定消息类型。Exchange 根据 Binding Key 将消息转发到相关队列。

8. vhost(虚拟主机):vhost 是 RabbitMQ 中提供的逻辑隔离环境。每个 vhost 都有自己的队列、交换器和绑定规则。可以通过创建不同的 vhost 将 RabbitMQ 进行逻辑分割和隔离。

```python
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost', virtual_host='my_vhost'))
channel = connection.channel()

channel.exchange_declare(exchange='my_exchange', exchange_type='direct')
channel.queue_declare(queue='my_queue')

channel.basic_publish(
    exchange='my_exchange',
    routing_key='my_routing_key',
    body='Hello, RabbitMQ!'
)

connection.close()
```

0条评论
0 / 1000
廖****波
14文章数
0粉丝数
廖****波
14 文章 | 0 粉丝
原创

RabbitMQ常用概念介绍

2023-08-25 23:11:35
7
0

RabbitMQ 是一个常用的消息中间件,用于在应用程序和服务之间传递消息。在 RabbitMQ 中,有一些重要的概念需要理解。Producer 是发送消息到 RabbitMQ 的应用程序或服务,它将消息发布到交换器,并通过路由键将消息发送到特定的队列。Consumer 是订阅并处理队列中的消息的应用程序或服务,在连接到 RabbitMQ Broker 后,它监听相关队列以接收消息并进行处理。Queue 是用于存储消息的数据结构,它实现了先进先出的原则。Exchange 是消息的接收和分发中心,Producer 将消息发布到 Exchange,并根据路由规则将其路由到与之绑定的队列。Broker 是 RabbitMQ 的核心角色,负责处理消息的路由和传递。

1. Producer(生产者):Producer 是发送消息到 RabbitMQ 的应用程序或服务。它使用 RabbitMQ 客户端库与 RabbitMQ Broker 进行交互,并将消息发送到交换器。

```python
import pika

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

channel.basic_publish(
    exchange='my_exchange',
    routing_key='my_routing_key',
    body='Hello, RabbitMQ!'
)

connection.close()
```

2. Consumer(消费者):Consumer 是订阅并处理队列中的消息的应用程序或服务。它连接到 RabbitMQ Broker 并监听相关队列以接收消息。

```python
import pika

def callback(ch, method, properties, body):
    print("Received message:", body)

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

channel.basic_consume(queue='my_queue', on_message_callback=callback, auto_ack=True)

channel.start_consuming()

connection.close()
```

3. Queue(队列):Queue 是 RabbitMQ 用于存储消息的数据结构。Producer 将消息发送到 Exchange,然后 Exchange 将消息路由到一个或多个与之绑定的队列中。

```python
import pika

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

channel.queue_declare(queue='my_queue')

channel.basic_publish(
    exchange='',
    routing_key='my_queue',
    body='Hello, RabbitMQ!'
)

connection.close()
```

4. Exchange(交换器):Exchange 是消息的接收和分发中心。Producer 发布消息到 Exchange,Exchange 根据特定的路由规则将消息路由到与之绑定的队列中。

```python
import pika

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

channel.exchange_declare(exchange='my_exchange', exchange_type='direct')

channel.basic_publish(
    exchange='my_exchange',
    routing_key='my_routing_key',
    body='Hello, RabbitMQ!'
)

connection.close()
```

5. Broker(代理服务器):Broker 是 RabbitMQ 中扮演核心角色的消息中间件服务器。Producer 发送消息到 Broker,Consumer 从 Broker 拉取和处理消息。

6. Routing Key(路由键):Producer 在发布消息时使用 Routing Key 指定该消息的目标队列。Exchange 根据 Routing Key 将消息路由到与之匹配的队列中。

7. Binding Key(绑定键):Consumer 在向 Exchange 绑定队列时可使用 Binding Key。Binding Key 指定了该消费者关注的特定消息类型。Exchange 根据 Binding Key 将消息转发到相关队列。

8. vhost(虚拟主机):vhost 是 RabbitMQ 中提供的逻辑隔离环境。每个 vhost 都有自己的队列、交换器和绑定规则。可以通过创建不同的 vhost 将 RabbitMQ 进行逻辑分割和隔离。

```python
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost', virtual_host='my_vhost'))
channel = connection.channel()

channel.exchange_declare(exchange='my_exchange', exchange_type='direct')
channel.queue_declare(queue='my_queue')

channel.basic_publish(
    exchange='my_exchange',
    routing_key='my_routing_key',
    body='Hello, RabbitMQ!'
)

connection.close()
```

文章来自个人专栏
闲聊
14 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0