更新了一下mq绑定队列名,使用os.hostname

This commit is contained in:
Cold
2025-12-29 11:33:37 +08:00
committed by 张斌
parent c342345c0b
commit 63c19d0727

View File

@@ -1,10 +1,12 @@
package rabbitmq package rabbitmq
import ( import (
"context"
"fmt" "fmt"
"os" "os"
"sync" "sync"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/util/guid" "github.com/gogf/gf/v2/util/guid"
) )
@@ -14,19 +16,35 @@ var (
) )
// getInstanceId 获取当前实例的唯一标识(单例) // getInstanceId 获取当前实例的唯一标识(单例)
// 格式:{hostname}.{uuid8} // 优先级:配置文件 > 环境变量 > 容器名/主机名 > 随机UUID
func getInstanceId() string { func getInstanceId() string {
instanceOnce.Do(func() { instanceOnce.Do(func() {
// 获取主机名 ctx := context.Background()
// 1. 优先从配置文件读取(手动指定,最高优先级)
instanceId = g.Cfg().MustGet(ctx, "rabbitmq.instanceName").String()
if instanceId != "" {
return
}
// 2. 读取环境变量Docker/K8s部署时设置
instanceId = os.Getenv("INSTANCE_NAME")
if instanceId != "" {
return
}
// 3. 使用主机名Docker容器名/主机名)
hostname, err := os.Hostname() hostname, err := os.Hostname()
if err != nil || hostname == "" { if err != nil || hostname == "" {
hostname = "unknown" hostname = "unknown"
} }
// 生成8位UUID // 4. 如果主机名是默认值(本地开发),添加随机后缀避免冲突
uuid := guid.S()[:8] if hostname == "localhost" || hostname == "unknown" {
instanceId = hostname + "." + guid.S()[:4]
instanceId = fmt.Sprintf("%s.%s", hostname, uuid) } else {
instanceId = hostname
}
}) })
return instanceId return instanceId
} }