serviceService.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package main
  2. import (
  3. "app.yhyue.com/BP/servicerd/proto"
  4. "context"
  5. "log"
  6. )
  7. /**
  8. 服务治理
  9. */
  10. type Service struct {
  11. }
  12. //
  13. func (s *Service) Registe(ctx context.Context, in *proto.ServiceMeta) (*proto.StringRepData, error) {
  14. AddServiceMeta(in.Name, in.Ip, in.Port, in.Workers, in.Balance)
  15. return &proto.StringRepData{Data: "ok"}, nil
  16. }
  17. //
  18. func (s *Service) Destory(ctx context.Context, meta *proto.ServiceMeta) (*proto.StringRepData, error) {
  19. DestoryServiceMeta(meta.Ip, meta.Port)
  20. return &proto.StringRepData{Data: "ok"}, nil
  21. }
  22. //
  23. func (s *Service) Apply(ctx context.Context, in *proto.ApplyReqData) (*proto.ApplyRepData, error) {
  24. var addr, id string
  25. var err error
  26. if in.Balance == LOAD {
  27. addr, id, err = ApplyWithLoad(in.Name)
  28. } else if in.Balance == SEQ {
  29. addr, id, err = ApplyWithNotUse(in.Name)
  30. } else {
  31. addr, id, err = ApplyWithRandom(in.Name)
  32. }
  33. if err != nil {
  34. log.Println(err.Error())
  35. return &proto.ApplyRepData{Addr: "", ResourceId: ""}, err
  36. } else {
  37. return &proto.ApplyRepData{Addr: addr, ResourceId: id}, nil
  38. }
  39. }
  40. func (s *Service) Release(ctx context.Context, in *proto.StringReqData) (*proto.StringRepData, error) {
  41. Release(in.Data)
  42. return &proto.StringRepData{Data: "ok"}, nil
  43. }