RabbitMQ Golang教程
发布日期:2021-05-09 09:14:35 浏览次数:20 分类:博客文章

本文共 2426 字,大约阅读时间需要 8 分钟。


  • ���������������go get������amqp

  • go get github.com/streadway/amqp


��������������������������������������������� send.go������������������������������������������receive.go������������������������RabbitMQ���������������������������������������

package mainimport (	"github.com/streadway/amqp"	"log")func failOnError(err error, msg string) {	if err != nil {		log.Fatalf("%s: %s", msg, err)	}}func main()  {	conn,err := amqp.Dial("amqp://admin:admin@xx.xxx.xxx.xxx:5672/")	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(		"hello", // 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),		})	failOnError(err, "Failed to publish a message")	log.Printf(" [x] Sent %s", body)}

������


������������������������������������������������������������RabbitMQ������������������������������������������������������������������������������������������������������������������������������������

���������������receive.go���������������send���������������������������������

package mainimport (	"github.com/streadway/amqp"	"log")func failOnErrors(err error, msg string) {	if err != nil {		log.Fatalf("%s: %s", msg, err)	}}func main()  {	conn,err := amqp.Dial("amqp://admin:admin@xx.xxx.xxx.xxx:5672/")	failOnErrors(err, "Failed to connect to RabbitMQ")	defer conn.Close()	ch, err := conn.Channel()	failOnErrors(err, "Failed to open a channel")	defer ch.Close()	q, err := ch.QueueDeclare(		"hello", // name		false,   // durable		false,   // delete when unused		false,   // exclusive		false,   // no-wait		nil,     // arguments	)	failOnErrors(err, "Failed to declare a queue")	msgs, err := ch.Consume(		q.Name, // queue		"",     // consumer		true,   // auto-ack		false,  // exclusive		false,  // no-local		false,  // no-wait		nil,    // args	)	failOnErrors(err, "Failed to register a consumer")	forever := make(chan bool)	go func() {		for d := range msgs {			log.Printf("Received a message: %s", d.Body)		}	}()	log.Printf(" [*] Waiting for messages. To exit press CTRL+C")	<-forever}

���

上一篇:如何(正确)使用搜索引擎?使用搜索引擎的高效技巧(例如:百度、谷歌)
下一篇:基于golang分布式爬虫系统的架构体系v1.0

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月08日 22时12分58秒