You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
1.7 KiB

6 months ago
package server
import (
"github.com/go-kratos/kratos/v2/log"
"bkb-recommend/internal/conf"
rn "github.com/go-kratos/kratos/contrib/registry/nacos/v2"
"github.com/go-kratos/kratos/v2/registry"
"github.com/google/wire"
"github.com/nacos-group/nacos-sdk-go/clients"
"github.com/nacos-group/nacos-sdk-go/common/constant"
"github.com/nacos-group/nacos-sdk-go/vo"
)
// ProviderSet is server providers.
var ProviderSet = wire.NewSet(NewGRPCServer, NewHTTPServer, NewDiscovery, NewRegistrar)
func NewNacosClient(env string) vo.NacosClientParam {
type config struct {
addr string
username string
password string
}
var nc config
if env == "prod" || env == "uat" {
nc = config{
addr: "72535c70-8d6d-400f-9893-4bb3e634f682.nacos.cn-north-4.cse.myhuaweicloud.com",
username: "nacos_pub",
password: "88m8JxgK",
}
} else {
nc = config{
addr: "72535c70-8d6d-400f-9893-4bb3e634f682.nacos.cn-north-4.cse.myhuaweicloud.com",
username: "nacos",
password: "nacos",
}
}
sc := []constant.ServerConfig{
*constant.NewServerConfig(nc.addr, 8848),
}
cc := &constant.ClientConfig{
NamespaceId: env, // namespace id
Username: nc.username,
Password: nc.password,
CacheDir: "./log/nacos",
LogDir: "./log/nacos",
}
return vo.NacosClientParam{
ClientConfig: cc,
ServerConfigs: sc,
}
}
func NewRegistrar(app *conf.App) registry.Registrar {
param := NewNacosClient(app.Env)
client, err := clients.NewNamingClient(
param,
)
if err != nil {
log.Fatal(err)
return nil
}
return rn.New(client)
}
func NewDiscovery(env string) registry.Discovery {
param := NewNacosClient(env)
client, err := clients.NewNamingClient(
param,
)
if err != nil {
log.Fatal(err)
}
return rn.New(client)
}