🚀 使用Gin和RabbitMQ實現消息隊列
RabbitMQ是一個開源的消息代理軟件,通常用於實現應用程序之間的異步通訊。它允許應用程序發送和接收消息,而不必直接與其他應用程序進行交互。
本章將探討如何在Gin Web框架中整合RabbitMQ,以實現應用程序的異步處理和消息隊列。
amqp
,來設定與RabbitMQ的連接。conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
if err != nil {
log.Fatal(err)
}
ch, err := conn.Channel()
r.POST("/send-message", func(c *gin.Context) {
body := c.PostForm("message")
err := ch.Publish(
"", // exchange
"queue_name", // routing key
false, // mandatory
false, // immediate
amqp.Publishing{
ContentType: "text/plain",
Body: []byte(body),
})
if err != nil {
log.Fatal(err)
}
})
msgs, err := ch.Consume(
"queue_name", // queue
"", // consumer
true, // auto-ack
false, // exclusive
false, // no-local
false, // no-wait
nil, // args
)
if err != nil {
log.Fatal(err)
}
go func() {
for d := range msgs {
log.Printf("Received message: %s", d.Body)
}
}()
通過整合Gin和RabbitMQ,開發人員可以輕鬆地在Web應用程序中實現異步處理和消息隊列功能,從而提高應用的效率和韌性。
謝謝大家看完這篇,如果您喜歡我的文章,歡迎 小額贊助我 ^^