| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package nacos
- import (
- "git.shuncheng.lu/bigthing/gocommon/pkg/conf"
- "git.shuncheng.lu/bigthing/gocommon/pkg/internal/nacos"
- "git.shuncheng.lu/bigthing/gocommon/pkg/internal/util"
- "github.com/nacos-group/nacos-sdk-go/vo"
- )
- var (
- discoverClientInfo *nacos.NamingInfo
- )
- func InitNacosDiscoverClient() error {
- info, err := nacos.NewNacosNameClient(nacos.NacosDiscover, conf.SetAndAssertNil)
- if err != nil {
- return err
- }
- discoverClientInfo = info
- return nil
- }
- func GetHost(serverName string) (string, error) {
- var (
- serviceName string
- groupName string
- )
- serviceName = conf.GetString(serverName, "service_name")
- groupName = conf.GetString(serverName, "group_name", "DEFAULT_GROUP")
- clusterStr := conf.GetString(serverName, "clusters")
- if clusterStr == "" {
- return getHost(vo.SelectOneHealthInstanceParam{
- ServiceName: serviceName,
- GroupName: groupName,
- })
- }
- return getHost(vo.SelectOneHealthInstanceParam{
- Clusters: util.SplitIgnoreSpace(clusterStr, ","), // 默认是 DEFAULT
- ServiceName: serviceName,
- GroupName: groupName,
- })
- }
- func getHost(param vo.SelectOneHealthInstanceParam) (string, error) {
- instance, err := discoverClientInfo.SelectOneHealthyInstance(param)
- if err != nil {
- return "", err
- }
- return instance.Ip + ":" + util.Uint642String(instance.Port), nil
- }
- //获取服务域名
- func GetDomainHost(serverName string) (string, error) {
- domainAddr := conf.GetString(serverName, "domain_addr")
- if domainAddr == "" {
- return GetHost(serverName)
- }
- return domainAddr, nil
- }
|