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