-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Description
OpenIM Server Version
3.8.3
Operating System and CPU Architecture
Linux (AMD)
Deployment Method
Source Code Deployment
Bug Description and Steps to Reproduce
3.8.3 镜像部署源码需要修改的地方,修复k8s部署时ectd和gateway的prometheus端口索引异常问题
1、open-im-server\pkg\common\cmd\msg_gateway.go
func (m *MsgGatewayCmd) runE() error {
m.msgGatewayConfig.Index = config.Index(m.Index())
rpc := m.msgGatewayConfig.MsgGateway.RPC
prometheus := config.Prometheus{
Enable: m.msgGatewayConfig.MsgGateway.Prometheus.Enable,
Ports: m.msgGatewayConfig.MsgGateway.Prometheus.Ports,
} //修改的地方,处理设置手动分配端口时避免promethues端口index越界
return startrpc.Start(
m.ctx, &m.msgGatewayConfig.Discovery,
&prometheus,
rpc.ListenIP, rpc.RegisterIP,
rpc.AutoSetPorts,
rpc.Ports, int(m.msgGatewayConfig.Index),
m.msgGatewayConfig.Discovery.RpcService.MessageGateway,
nil,
m.msgGatewayConfig,
[]string{},
[]string{},
msggateway.Start,
)
}
2、github.com\openimsdk\[email protected]\utils\datautil\datautil.go
func (r *RootCmd) persistentPreRun(cmd *cobra.Command, opts ...func(*CmdOpts)) error {
if err := r.initEtcd(); err != nil {
return err
}
cmdOpts := r.applyOptions(opts...)
if err := r.initializeConfiguration(cmd, cmdOpts); err != nil {
return err
}
if err := r.updateConfigFromEtcd(cmdOpts); err != nil {
return err
}
if err := r.initializeLogger(cmdOpts); err != nil {
return errs.WrapMsg(err, "failed to initialize logger")
}
if r.etcdClient != nil {
if err := r.etcdClient.Close(); err != nil {
return errs.WrapMsg(err, "failed to close etcd client")
}
} //增加判断r.etcdClient != nil,处理kubernetes部署时discovery.enable = kubernetes时 etcdClient==ni的异常问题
return nil
}
Screenshots Link
No response