2017-01-02 464 views
2

我正在浏览gRPC服务器的这个代码。谁能告诉我需要思考用here为什么我们需要在gRPC服务器上注册反射服务

代码:

func main() { 
    lis, err := net.Listen("tcp", port) 
    if err != nil { 
     log.Fatalf("failed to listen: %v", err) 
    } 
    s := grpc.NewServer() 
    pb.RegisterGreeterServer(s, &server{}) 
    // Register reflection service on gRPC server. 
    reflection.Register(s) 
    if err := s.Serve(lis); err != nil { 
     log.Fatalf("failed to serve: %v", err) 
    } 
} 

回答

6

服务器反射是没有必要的运行HelloWorld示例。

helloworld示例也用作服务器反射示例,这就是为什么您在那里看到反射注册代码的原因。

有关服务器反思的更多信息: 服务器反射是定义的一种服务,用于提供有关gRPC服务器上可公开访问的gRPC服务的信息。教程可在这里:https://github.com/grpc/grpc-go/blob/master/Documentation/server-reflection-tutorial.md

+0

'reflection.Register(s) \t if err:= s.Serve(lis); err!= nil { \t \t log.Fatalf(“failed to serve:%v”,err) \t}'因此,我可以安全地删除这段代码,对吧? – Naresh

+0

您可以移动代码以注册反射。 – menghanl

相关问题