golang rabbitmq客户端连接及重连
package main
import (
"fmt"
"github.com/streadway/amqp"
"time"
)
func failOnError(err error, msg string) {
if err != nil {
fmt.Printf("%s: %s\n", msg, err)
}
}
func main() {
var (
conn *amqp.Connection
err error
attempt int
)
// 尝试连接到RabbitMQ服务器,最多5次,每次间隔30秒
for attempt <= 5 {
conn, err = amqp.Dial("amqp://guest:guest@localhost:5672/")
if err == nil {
defer conn.Close()
fmt.Printf("连接到RabbitMQ成功\n")
break
}
attempt++
time.Sleep(30 * time.Second)
}
if attempt > 5 {
failOnError(err, "连接失败")
}
// 连接成功后的业务逻辑...
}
这段代码使用了amqp
包创建了一个RabbitMQ连接,并通过一个循环实现了连接失败时的重连机制。如果在5次尝试后仍然无法连接,程序将打印错误信息并退出。这是一个简单的重连逻辑示例,可以根据实际需求进行扩展和优化。
评论已关闭