parent
6e4a17764e
commit
304474a5e1
@ -0,0 +1,95 @@
|
||||
package fault_tolerant
|
||||
|
||||
import (
|
||||
"Open_IM/pkg/common/config"
|
||||
"Open_IM/pkg/common/log"
|
||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
||||
"Open_IM/pkg/utils"
|
||||
"google.golang.org/grpc"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func GetConfigConn(serviceName string, operationID string) *grpc.ClientConn {
|
||||
rpcRegisterIP := config.Config.RpcRegisterIP
|
||||
var err error
|
||||
if config.Config.RpcRegisterIP == "" {
|
||||
rpcRegisterIP, err = utils.GetLocalIP()
|
||||
if err != nil {
|
||||
log.Error(operationID, "GetLocalIP failed ", err.Error())
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
var configPortList []int
|
||||
//1
|
||||
if config.Config.RpcRegisterName.OpenImUserName == serviceName {
|
||||
configPortList = config.Config.RpcPort.OpenImUserPort
|
||||
}
|
||||
//2
|
||||
if config.Config.RpcRegisterName.OpenImFriendName == serviceName {
|
||||
configPortList = config.Config.RpcPort.OpenImFriendPort
|
||||
}
|
||||
//3
|
||||
if config.Config.RpcRegisterName.OpenImMsgName == serviceName {
|
||||
configPortList = config.Config.RpcPort.OpenImMessagePort
|
||||
}
|
||||
//4
|
||||
if config.Config.RpcRegisterName.OpenImPushName == serviceName {
|
||||
configPortList = config.Config.RpcPort.OpenImPushPort
|
||||
}
|
||||
//5
|
||||
if config.Config.RpcRegisterName.OpenImRelayName == serviceName {
|
||||
configPortList = config.Config.RpcPort.OpenImMessageGatewayPort
|
||||
}
|
||||
//6
|
||||
if config.Config.RpcRegisterName.OpenImGroupName == serviceName {
|
||||
configPortList = config.Config.RpcPort.OpenImGroupPort
|
||||
}
|
||||
//7
|
||||
if config.Config.RpcRegisterName.OpenImAuthName == serviceName {
|
||||
configPortList = config.Config.RpcPort.OpenImAuthPort
|
||||
}
|
||||
//10
|
||||
if config.Config.RpcRegisterName.OpenImOfficeName == serviceName {
|
||||
configPortList = config.Config.RpcPort.OpenImOfficePort
|
||||
}
|
||||
//11
|
||||
if config.Config.RpcRegisterName.OpenImOrganizationName == serviceName {
|
||||
configPortList = config.Config.RpcPort.OpenImOrganizationPort
|
||||
}
|
||||
//12
|
||||
if config.Config.RpcRegisterName.OpenImConversationName == serviceName {
|
||||
configPortList = config.Config.RpcPort.OpenImConversationPort
|
||||
}
|
||||
//13
|
||||
if config.Config.RpcRegisterName.OpenImCacheName == serviceName {
|
||||
configPortList = config.Config.RpcPort.OpenImCachePort
|
||||
}
|
||||
//14
|
||||
if config.Config.RpcRegisterName.OpenImRealTimeCommName == serviceName {
|
||||
configPortList = config.Config.RpcPort.OpenImRealTimeCommPort
|
||||
}
|
||||
if len(configPortList) == 0 {
|
||||
log.Error(operationID, "len(configPortList) == 0 ")
|
||||
return nil
|
||||
}
|
||||
target := rpcRegisterIP + ":" + utils.Int32ToString(int32(configPortList[0]))
|
||||
log.Info(operationID, "rpcRegisterIP ", rpcRegisterIP, " port ", configPortList, " grpc target: ", target, " serviceName: ", serviceName)
|
||||
conn, err := grpc.Dial(target, grpc.WithInsecure())
|
||||
if err != nil {
|
||||
log.Error(operationID, "grpc.Dail failed ", err.Error())
|
||||
return nil
|
||||
}
|
||||
log.NewDebug(operationID, utils.GetSelfFuncName(), serviceName, conn)
|
||||
return conn
|
||||
}
|
||||
|
||||
func GetDefaultConn(serviceName string, operationID string) *grpc.ClientConn {
|
||||
con := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), serviceName, operationID, config.Config.Etcd.UserName, config.Config.Etcd.Password)
|
||||
if con != nil {
|
||||
return con
|
||||
}
|
||||
log.NewWarn(operationID, utils.GetSelfFuncName(), "conn is nil !!!!!", serviceName)
|
||||
con = GetConfigConn(serviceName, operationID)
|
||||
return con
|
||||
}
|
Loading…
Reference in new issue