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()
阅读 1.8k
1 个回答

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

ConnectionFactory factory = new ConnectionFactory();
Connection conn = factory.newConnection();
 // Then open a channel:
Channel channel = conn.createChannel();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题