1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package config
- import (
- "entrance-grpc/iam"
- "github.com/sirupsen/logrus"
- "google.golang.org/grpc"
- "google.golang.org/grpc/credentials/insecure"
- "google.golang.org/grpc/keepalive"
- "os"
- "time"
- )
- var iamClient iam.IamClient
- var conn *grpc.ClientConn
- func InitEntranceIamClient() {
- if os.Getenv("ADMIN_GRPC_SERVER") == "" {
- logrus.Warnf("ADMIN_GRPC_SERVER is empty")
- return
- }
- var err error
- conn, err = grpc.NewClient(os.Getenv("ADMIN_GRPC_SERVER"),
- grpc.WithTransportCredentials(insecure.NewCredentials()),
- grpc.WithKeepaliveParams(keepalive.ClientParameters{
- Time: 30 * time.Second, // 发送 ping 的间隔
- Timeout: 10 * time.Second, // 等待 ack 的超时
- PermitWithoutStream: true, // 即使没有活跃流也发送 ping
- }),
- )
- if err != nil {
- logrus.Warnf("did not connect: %v", err)
- }
- iamClient = iam.NewIamClient(conn)
- }
- func GetIamClient() iam.IamClient {
- if iamClient == nil {
- InitEntranceIamClient()
- }
- return iamClient
- }
- func CloseGrpcConn() {
- conn.Close()
- }
|