golang gin 监听rabbitmq队列无限消费
-
连接rabbitmq
package database import ( "github.com/streadway/amqp" "log" "reflect" "yy-data-processing/common/config" ) var RabbitConn *amqp.Connection var RabbitChannel *amqp.Channel func InitRabbitmq() { var err error RabbitConn, err = amqp.Dial(config.Config.RabbitUrl) if err != nil { log.Println("连接RabbitMQ失败") panic(err) } RabbitChannel, err = RabbitConn.Channel() if err != nil { log.Println("获取RabbitMQ channel失败") panic(err) } } // 0表示channel未关闭,1表示channel已关闭 func CheckRabbitClosed(ch amqp.Channel) int64 { d := reflect.ValueOf(ch) i := d.FieldByName("closed").Int() return i } -
创建生产者
package service
import (
"encoding/json"
"github.com/streadway/amqp"
"log"
"yy-data-processing/common/config"

该博客介绍了如何使用Go语言的Gin框架结合RabbitMQ进行消息生产和消费。首先,通过`amqp`库建立与RabbitMQ的连接并声明队列,然后创建生产者发送JSON格式的数据到队列。接着,实现消费者无限循环监听队列,接收到消息后进行处理,处理完成后手动ACK确认。在遇到通道关闭时,能自动重新连接并设置Qos。整个流程确保了消息的可靠传递。
最低0.47元/天 解锁文章
257

被折叠的 条评论
为什么被折叠?



