/** 服务提供者样例 */ package main import ( "app.yhyue.com/BP/servicerd/proto" "app.yhyue.com/BP/servicerd/util" "context" "flag" "google.golang.org/grpc" "log" "os" "os/signal" ) //服务地址配置 var ( ip = flag.String("ip", "192.168.20.100", "本机ip") port = flag.Int("port", 20153, "服务端口") rdserver = flag.String("rd", "192.168.3.240:10021", "服务治理地址") serviceName = flag.String("name", "demo", "服务名称") ) //实际业务实现 type DemoService struct { } // func (s *DemoService) Say(ctx context.Context, in *proto.DemoReq) (*proto.DemoRep, error) { return &proto.DemoRep{Data: in.Name}, nil } func init() { flag.Parse() } func main() { bs := util.NewService(*rdserver, *serviceName, *ip, *port, 20, 10) bs.Run(func(s *grpc.Server) error { //服务注册,服务心跳,都在这个里边维护 //TODO 服务注册 ,当然,这里可以注册多个协议实现 proto.RegisterDemoServiceServer(s, new(DemoService)) return nil }) c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt, os.Kill) <-c //执行清理操作 log.Println("服务注销") bs.Destory() }