golang使用rabbitmq(三)发布/订阅

本文介绍了如何使用Golang通过RabbitMQ实现发布订阅模式,以确保一个生产者的消息能被多个消费者同时消费。核心概念包括交换器、临时队列和绑定。交换器作为消息传递的关键,fanout类型的交换器会将消息广播到所有队列。通过创建临时队列并进行绑定,可以实现实时的消息分发。多个订阅者启动后,每条发布的消息都将被所有订阅者接收到。
摘要由CSDN通过智能技术生成

上一篇文章中讲了工作队列,但是工作队列只能做到一个生产者的消息被消费者消费一次。现在要实现一个生产者的消息被两个不同的消费者同时消费,我们把这种模式叫做发布订阅。

交换器

RabbitMQ消息传递模型的核心是生产者永远不会把消息直接发送到某个队列上,甚至根本不知道消息是否发送到队列上。生产者只向交换器发送消息。

交换器来决定怎么处理消息,是把消息传递到特定的队列,还是把消息传到多个队列,或者直接丢弃消息,这一切取决于交换器的类型。

交换器的类型有四种:direct, topic, headers, fanout。在这里我们只讲fanout这一种,fanout类型非常简单,他会把消息发到所有他知道的队列。(之前我们用的是)

定义交换器:

	err = ch.ExchangeDeclare("logs", amqp.ExchangeFanout, true, false
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值