package resolver import ( "git.hlsq.asia/mmorpg/service-common/log" "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/keepalive" "time" ) const serviceConfig = `{ "loadBalancingConfig": [ { "round_robin": {} } ], "healthCheckConfig": { "serviceName": "" } }` func NewGrpcConnection(target string) (*grpc.ClientConn, error) { cc, err := grpc.NewClient( target, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithStatsHandler(otelgrpc.NewClientHandler()), grpc.WithDefaultServiceConfig(serviceConfig), grpc.WithKeepaliveParams( keepalive.ClientParameters{ Time: 30 * time.Second, // 保活探测包发送的时间间隔 Timeout: 10 * time.Second, // 保活探测包的超时时间 PermitWithoutStream: true, }, ), ) if err != nil { log.Errorf("create grpc err: %v, target: %v", err, target) return nil, err } return cc, nil }