python如何连接访问东方通消息队列
时间: 2024-10-08 14:09:29 浏览: 13
在Python中连接并访问东方通(通常指的是RabbitMQ或其他AMQP协议的消息队列服务)通常涉及到使用第三方库pika或者amqpstorm。以下是使用pika库的基本步骤:
1. 安装pika库:
```
pip install pika
```
2. 连接到RabbitMQ服务器:
```python
import pika
def connect_to_queue():
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) # 使用本地主机名替换为实际的服务器地址
channel = connection.channel() # 创建通道
return connection, channel
# 示例中使用guest用户默认权限(建议生产环境中使用其他账号)
connection, channel = connect_to_queue()
```
3. 创建和绑定交换机及队列:
```python
channel.exchange_declare(exchange='your_exchange_name', exchange_type='direct') # 指定交换机名称和类型
queue_name = 'your_queue_name'
binding_key = 'key_for_routing' # 根据需要设置路由键
channel.queue_declare(queue=queue_name) # 队列声明
channel.queue_bind(exchange='your_exchange_name', queue=queue_name, routing_key=binding_key)
```
4. 发送消息:
```python
message = "Hello, World!"
channel.basic_publish(exchange='your_exchange_name', routing_key=binding_key, body=message)
print(f" [x] Sent {message}")
```
5. 接收消息(消费者模式):
```python
def callback(ch, method, properties, body):
print(f" [x] Received {body.decode('utf-8')}")
channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True) # 设置回调函数
channel.start_consuming() # 开始消费
```
6. 关闭连接:
```python
connection.close()
```