mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-06 04:15:46 +08:00
fix: mq
This commit is contained in:
parent
31a912c013
commit
9bc6a651cf
@ -29,14 +29,12 @@ import (
|
|||||||
conf "github.com/openimsdk/open-im-server/v3/pkg/common/config"
|
conf "github.com/openimsdk/open-im-server/v3/pkg/common/config"
|
||||||
kdisc "github.com/openimsdk/open-im-server/v3/pkg/common/discovery"
|
kdisc "github.com/openimsdk/open-im-server/v3/pkg/common/discovery"
|
||||||
disetcd "github.com/openimsdk/open-im-server/v3/pkg/common/discovery/etcd"
|
disetcd "github.com/openimsdk/open-im-server/v3/pkg/common/discovery/etcd"
|
||||||
"github.com/openimsdk/open-im-server/v3/pkg/common/prommetrics"
|
|
||||||
"github.com/openimsdk/tools/discovery/etcd"
|
"github.com/openimsdk/tools/discovery/etcd"
|
||||||
"github.com/openimsdk/tools/errs"
|
"github.com/openimsdk/tools/errs"
|
||||||
"github.com/openimsdk/tools/log"
|
"github.com/openimsdk/tools/log"
|
||||||
"github.com/openimsdk/tools/mw"
|
"github.com/openimsdk/tools/mw"
|
||||||
"github.com/openimsdk/tools/system/program"
|
"github.com/openimsdk/tools/system/program"
|
||||||
"github.com/openimsdk/tools/utils/datautil"
|
"github.com/openimsdk/tools/utils/datautil"
|
||||||
"github.com/openimsdk/tools/utils/jsonutil"
|
|
||||||
"github.com/openimsdk/tools/utils/network"
|
"github.com/openimsdk/tools/utils/network"
|
||||||
"github.com/openimsdk/tools/utils/runtimeenv"
|
"github.com/openimsdk/tools/utils/runtimeenv"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
@ -69,66 +67,67 @@ func Start(ctx context.Context, index int, config *Config) error {
|
|||||||
prometheusPort int
|
prometheusPort int
|
||||||
)
|
)
|
||||||
|
|
||||||
registerIP, err := network.GetRpcRegisterIP("")
|
//registerIP, err := network.GetRpcRegisterIP("")
|
||||||
if err != nil {
|
//if err != nil {
|
||||||
return err
|
// return err
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
getAutoPort := func() (net.Listener, int, error) {
|
// todo
|
||||||
registerAddr := net.JoinHostPort(registerIP, "0")
|
//getAutoPort := func() (net.Listener, int, error) {
|
||||||
listener, err := net.Listen("tcp", registerAddr)
|
// registerAddr := net.JoinHostPort(registerIP, "0")
|
||||||
if err != nil {
|
// listener, err := net.Listen("tcp", registerAddr)
|
||||||
return nil, 0, errs.WrapMsg(err, "listen err", "registerAddr", registerAddr)
|
// if err != nil {
|
||||||
}
|
// return nil, 0, errs.WrapMsg(err, "listen err", "registerAddr", registerAddr)
|
||||||
_, portStr, _ := net.SplitHostPort(listener.Addr().String())
|
// }
|
||||||
port, _ := strconv.Atoi(portStr)
|
// _, portStr, _ := net.SplitHostPort(listener.Addr().String())
|
||||||
return listener, port, nil
|
// port, _ := strconv.Atoi(portStr)
|
||||||
}
|
// return listener, port, nil
|
||||||
|
//}
|
||||||
if config.API.Prometheus.AutoSetPorts && config.Discovery.Enable != conf.ETCD {
|
//
|
||||||
return errs.New("only etcd support autoSetPorts", "RegisterName", "api").Wrap()
|
//if config.API.Prometheus.AutoSetPorts && config.Discovery.Enable != conf.ETCD {
|
||||||
}
|
// return errs.New("only etcd support autoSetPorts", "RegisterName", "api").Wrap()
|
||||||
|
//}
|
||||||
|
|
||||||
router, err := newGinRouter(ctx, client, config)
|
router, err := newGinRouter(ctx, client, config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if config.API.Prometheus.Enable {
|
//if config.API.Prometheus.Enable {
|
||||||
var (
|
// var (
|
||||||
listener net.Listener
|
// listener net.Listener
|
||||||
)
|
// )
|
||||||
|
//
|
||||||
if config.API.Prometheus.AutoSetPorts {
|
// if config.API.Prometheus.AutoSetPorts {
|
||||||
listener, prometheusPort, err = getAutoPort()
|
// listener, prometheusPort, err = getAutoPort()
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return err
|
// return err
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
etcdClient := client.(*etcd.SvcDiscoveryRegistryImpl).GetClient()
|
// etcdClient := client.(*etcd.SvcDiscoveryRegistryImpl).GetClient()
|
||||||
|
//
|
||||||
_, err = etcdClient.Put(ctx, prommetrics.BuildDiscoveryKey(prommetrics.APIKeyName), jsonutil.StructToJsonString(prommetrics.BuildDefaultTarget(registerIP, prometheusPort)))
|
// _, err = etcdClient.Put(ctx, prommetrics.BuildDiscoveryKey(prommetrics.APIKeyName), jsonutil.StructToJsonString(prommetrics.BuildDefaultTarget(registerIP, prometheusPort)))
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return errs.WrapMsg(err, "etcd put err")
|
// return errs.WrapMsg(err, "etcd put err")
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
prometheusPort, err = datautil.GetElemByIndex(config.API.Prometheus.Ports, index)
|
// prometheusPort, err = datautil.GetElemByIndex(config.API.Prometheus.Ports, index)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return err
|
// return err
|
||||||
}
|
// }
|
||||||
listener, err = net.Listen("tcp", fmt.Sprintf(":%d", prometheusPort))
|
// listener, err = net.Listen("tcp", fmt.Sprintf(":%d", prometheusPort))
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return errs.WrapMsg(err, "listen err", "addr", fmt.Sprintf(":%d", prometheusPort))
|
// return errs.WrapMsg(err, "listen err", "addr", fmt.Sprintf(":%d", prometheusPort))
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
go func() {
|
// go func() {
|
||||||
if err := prommetrics.ApiInit(listener); err != nil && !errors.Is(err, http.ErrServerClosed) {
|
// if err := prommetrics.ApiInit(listener); err != nil && !errors.Is(err, http.ErrServerClosed) {
|
||||||
netErr = errs.WrapMsg(err, fmt.Sprintf("api prometheus start err: %d", prometheusPort))
|
// netErr = errs.WrapMsg(err, fmt.Sprintf("api prometheus start err: %d", prometheusPort))
|
||||||
netDone <- struct{}{}
|
// netDone <- struct{}{}
|
||||||
}
|
// }
|
||||||
}()
|
// }()
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
address := net.JoinHostPort(network.GetListenIP(config.API.Api.ListenIP), strconv.Itoa(apiPort))
|
address := net.JoinHostPort(network.GetListenIP(config.API.Api.ListenIP), strconv.Itoa(apiPort))
|
||||||
|
|
||||||
server := http.Server{Addr: address, Handler: router}
|
server := http.Server{Addr: address, Handler: router}
|
||||||
|
@ -47,6 +47,8 @@ func NewOnlinePusher(disCov discovery.Conn, config *Config) OnlinePusher {
|
|||||||
switch config.Discovery.Enable {
|
switch config.Discovery.Enable {
|
||||||
case conf.ETCD:
|
case conf.ETCD:
|
||||||
return NewDefaultAllNode(disCov, config)
|
return NewDefaultAllNode(disCov, config)
|
||||||
|
case conf.Standalone:
|
||||||
|
return nil
|
||||||
default:
|
default:
|
||||||
log.ZWarn(context.Background(), "NewOnlinePusher is error", errs.Wrap(errors.New("unsupported discovery type")), "type", config.Discovery.Enable)
|
log.ZWarn(context.Background(), "NewOnlinePusher is error", errs.Wrap(errors.New("unsupported discovery type")), "type", config.Discovery.Enable)
|
||||||
return nil
|
return nil
|
||||||
|
@ -127,7 +127,6 @@ func Start[T any](ctx context.Context, discovery *conf.Discovery, prometheusConf
|
|||||||
}
|
}
|
||||||
|
|
||||||
etcdClient := client.(*etcd.SvcDiscoveryRegistryImpl).GetClient()
|
etcdClient := client.(*etcd.SvcDiscoveryRegistryImpl).GetClient()
|
||||||
|
|
||||||
_, err = etcdClient.Put(ctx, prommetrics.BuildDiscoveryKey(rpcRegisterName), jsonutil.StructToJsonString(prommetrics.BuildDefaultTarget(registerIP, prometheusPort)))
|
_, err = etcdClient.Put(ctx, prommetrics.BuildDiscoveryKey(rpcRegisterName), jsonutil.StructToJsonString(prommetrics.BuildDefaultTarget(registerIP, prometheusPort)))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errs.WrapMsg(err, "etcd put err")
|
return errs.WrapMsg(err, "etcd put err")
|
||||||
@ -176,7 +175,17 @@ func Start[T any](ctx context.Context, discovery *conf.Discovery, prometheusConf
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// todo
|
||||||
|
//err = client.Register(
|
||||||
|
// ctx,
|
||||||
|
// "prometheus"+rpcRegisterName,
|
||||||
|
// registerIP,
|
||||||
|
// port,
|
||||||
|
// grpc.WithTransportCredentials(insecure.NewCredentials()),
|
||||||
|
//)
|
||||||
|
|
||||||
err = client.Register(
|
err = client.Register(
|
||||||
|
ctx,
|
||||||
rpcRegisterName,
|
rpcRegisterName,
|
||||||
registerIP,
|
registerIP,
|
||||||
port,
|
port,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user