diff --git a/apps/sentinel/internal/svc/servicecontext.go b/apps/sentinel/internal/svc/servicecontext.go index d5f07cc..0cd91dd 100644 --- a/apps/sentinel/internal/svc/servicecontext.go +++ b/apps/sentinel/internal/svc/servicecontext.go @@ -3,6 +3,7 @@ package svc import ( "fmt" "github.com/smartwalle/alipay/v3" + "github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/stores/redis" "github.com/zeromicro/go-zero/core/stores/sqlx" "github.com/zeromicro/go-zero/zrpc" @@ -44,8 +45,15 @@ func NewServiceContext(c config.Config) *ServiceContext { if err != nil { panic(fmt.Sprintf("加载支付宝公钥失败: %v", err)) } + var walletRpc user.WalletServiceClient - walletRpc := user.NewWalletServiceClient(zrpc.MustNewClient(c.UserRpc).Conn()) + // 捕获RPC初始化时的错误,但不影响服务启动 + userClient, err := zrpc.NewClient(c.UserRpc) + if err != nil { + logx.Errorf("Failed to connect to SecretRpc: %v", err) + } else { + walletRpc = user.NewWalletServiceClient(userClient.Conn()) + } return &ServiceContext{ Config: c, Redis: rds, diff --git a/apps/user/internal/svc/servicecontext.go b/apps/user/internal/svc/servicecontext.go index cfed8a8..b0e760f 100644 --- a/apps/user/internal/svc/servicecontext.go +++ b/apps/user/internal/svc/servicecontext.go @@ -1,6 +1,7 @@ package svc import ( + "github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/stores/redis" "github.com/zeromicro/go-zero/core/stores/sqlx" "github.com/zeromicro/go-zero/zrpc" @@ -30,6 +31,24 @@ func NewServiceContext(c config.Config) *ServiceContext { Pass: c.CacheRedis[0].Pass, Type: c.CacheRedis[0].Type, // Redis 节点类型,如 "node" } + // 初始化 SecretRpc 和 ProductRpc + var secretRpc sentinel.SecretClient + var productRpc sentinel.ProductClient + + // 捕获RPC初始化时的错误,但不影响服务启动 + secretClient, err := zrpc.NewClient(c.SentinelRpc) + if err != nil { + logx.Errorf("Failed to connect to SecretRpc: %v", err) + } else { + secretRpc = sentinel.NewSecretClient(secretClient.Conn()) + } + + productClient, err := zrpc.NewClient(c.SentinelRpc) + if err != nil { + logx.Errorf("Failed to connect to ProductRpc: %v", err) + } else { + productRpc = sentinel.NewProductClient(productClient.Conn()) + } // 使用 MustNewRedis 来初始化 Redis 客户端 rds := redis.MustNewRedis(redisConf) @@ -43,7 +62,7 @@ func NewServiceContext(c config.Config) *ServiceContext { DeductionsModel: model.NewDeductionsModel(db, c.CacheRedis), ApiRequestsModel: model.NewApiRequestsModel(db, c.CacheRedis), RechargeModel: model.NewRechargeModel(db, c.CacheRedis), - SecretRpc: sentinel.NewSecretClient(zrpc.MustNewClient(c.SentinelRpc).Conn()), - ProductRpc: sentinel.NewProductClient(zrpc.MustNewClient(c.SentinelRpc).Conn()), + SecretRpc: secretRpc, // 捕获连接错误后,继续运行 + ProductRpc: productRpc, // 捕获连接错误后,继续运行 } }