温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Golang rabbitMQ生产者和消费者怎么实现

发布时间:2022-04-16 17:53:19 来源:亿速云 阅读:242 作者:zzz 栏目:开发技术

今天小编给大家分享一下Golang rabbitMQ生产者和消费者怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

消费者

package main import (	"fmt"	"github.com/streadway/amqp" ) func failOnError(err error, msg string) {	if err != nil {	fmt.Println("%s: %s", msg, err)	} } // 只能在安装 rabbitmq 的服务器上操作 func main() {	conn, err := amqp.Dial("amqp://mquser:123456@127.0.0.1/toutiao")	failOnError(err, "Failed to connect to RabbitMQ")	defer conn.Close()	ch, err := conn.Channel()	failOnError(err, "Failed to open a channel")	defer ch.Close()	q, err := ch.QueueDeclare(	"toutiao.web.test", // 队列名字	false,   // durable	false,   // delete when unused	false,   // exclusive	false,   // no-wait	nil,     // arguments	)	failOnError(err, "Failed to declare a queue")	msgs, err := ch.Consume(	q.Name, 	// queue	"toutiao",     // consumer	true,   // auto-ack,true消费了就消失	false,  // exclusive	false,  // no-local	false,  // no-wait	nil,    // args	)	failOnError(err, "Failed to register a consumer")	forever := make(chan bool)	go func() {	for d := range msgs {	fmt.Println(fmt.Sprintf("返回的消息:%s",d.Body))	}	}()	fmt.Println("[*] Waiting for messages. To exit press CTRL+C")	<-forever }

生产者

body:消息体

package main import (	"github.com/streadway/amqp"	"log" ) func failOnError(err error, msg string) {	if err != nil {	log.Fatalf("%s: %s", msg, err)	} } // 只能在安装 rabbitmq 的服务器上操作 func main() {	conn, err := amqp.Dial("amqp://mquser:123456@127.0.0.1/toutiao")	failOnError(err, "Failed to connect to RabbitMQ")	defer conn.Close()	ch, err := conn.Channel()	failOnError(err, "Failed to open a channel")	defer ch.Close()	q, err := ch.QueueDeclare(	"toutiao.web.test",   // name	false, // durable	false, // delete when unused	false, // exclusive	false, // no-wait	nil, // arguments )	failOnError(err, "Failed to declare a queue")	body := "Hello World!"  //发送的消息	err = ch.Publish(	"",         // exchange	q.Name, // routing key	false,  // mandatory	false,  // immediate	amqp.Publishing{	ContentType: "text/plain",	Body:        []byte(body),	})	log.Printf(" [x] Sent %s", body)	failOnError(err, "Failed to publish a message") }

以上就是“Golang rabbitMQ生产者和消费者怎么实现”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI