RabbitMQ中的 channel 和 connection 是什么关系?

RabbitMQ中的 channel 和 connection 是什么关系?

谁是父亲,谁是儿子,从属关系是什么?

import pika

# 创建凭证,使用RabbitMQ用户密码登录(去邮局取邮件,必须得验证身份)

credentials = pika.PlainCredentials("pd", "123456")

# 新建连接(找到这个邮局,等于连接上服务器)

connection = pika.BlockingConnection(pika.ConnectionParameters(host="localhost", port=5672, credentials=credentials))

# 创建频道(建造一个大邮箱,隶属于这家邮局的邮箱,就是个连接)

channel = connection.channel()

# 声明一个队列,用于接收消息,队列名字叫"秒杀"

channel.queue_declare(queue="秒杀")

# 注意在RabbitMQ中,消息想要发送给队列,必须经过交换(exchange),初学可以使用空字符串交换(exchange=""),它允许我们精确的指定发送给哪个队列(routing_key=""),参数body的值为发送的数据。

channel.basic_publish(exchange="", routing_key="秒杀", body="恭喜您抢到iPhone666")

print("已经发送了消息")

# 程序退出前,确保刷新网络缓冲以及消息发送给RabbitMQ,需要关闭本次连接

connection.close()


回答:

Channel *接口到一个通道。这个接口是公共API的一部分。
Connection 公共API:接口到AMQ连接

ConnectionFactory factory = new ConnectionFactory();

Connection conn = factory.newConnection();

// Then open a channel:

Channel channel = conn.createChannel();

以上是 RabbitMQ中的 channel 和 connection 是什么关系? 的全部内容, 来源链接: utcz.com/p/938230.html

回到顶部