1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /**
- 服务提供者样例
- */
- 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()
- }
|