register.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package nacos
  2. import (
  3. "errors"
  4. "git.shuncheng.lu/bigthing/gocommon/pkg/internal/util"
  5. "git.shuncheng.lu/bigthing/gocommon/pkg/conf"
  6. "git.shuncheng.lu/bigthing/gocommon/pkg/internal/nacos"
  7. "github.com/nacos-group/nacos-sdk-go/vo"
  8. )
  9. var (
  10. registerClientInfo *nacos.NamingInfo
  11. )
  12. // 兼容历史版本!有些手动调用的!
  13. func InitNacosRegisterClient() error {
  14. info, err := nacos.NewNacosNameClient(nacos.NacosRegister, conf.SetAndAssertNil)
  15. if err != nil {
  16. return err
  17. }
  18. err = exportCurrentServer(info)
  19. if err != nil {
  20. return err
  21. }
  22. registerClientInfo = info
  23. return nil
  24. }
  25. func InitNacosRegisterClientV2() error {
  26. info, err := nacos.NewNacosNameClient(nacos.NacosRegister, conf.SetAndAssertNil)
  27. if err != nil {
  28. return err
  29. }
  30. registerClientInfo = info
  31. return nil
  32. }
  33. func StartNacosRegisterClientV2() error {
  34. // todo 考虑是否sleep一会等服务真正启动!!
  35. if err := exportCurrentServer(registerClientInfo); err != nil {
  36. return err
  37. }
  38. util.Infof("nacos regist server success !!")
  39. return nil
  40. }
  41. /**
  42. 暴露当前服务
  43. */
  44. func exportCurrentServer(info *nacos.NamingInfo) error {
  45. success, err := info.RegisterInstance(vo.RegisterInstanceParam{
  46. Ip: info.ServerHost,
  47. Port: info.ServerPort,
  48. ServiceName: info.ProjectName,
  49. Weight: 10,
  50. Enable: true,
  51. Healthy: true,
  52. Ephemeral: true,
  53. Metadata: map[string]string{"idc": "shanghai"},
  54. ClusterName: info.ClusterName, // default value is DEFAULT
  55. GroupName: info.GroupName, // default value is DEFAULT_GROUP
  56. })
  57. if err != nil {
  58. return err
  59. }
  60. if !success {
  61. return errors.New("nacos register err")
  62. }
  63. return nil
  64. }