» gRPC快速入门:Go语言 » 4. 创建 server » 4.2 启动 server

启动 server

一旦我们实现了所有的方法,我们还需要启动一个 gRPC 服务器,以便客户端可以使用我们的服务。 以下代码片段显示如何为 RouteGuide 服务执行此操作:

lis, err := net.Listen("tcp", fmt.Sprintf("localhost:%d", port))
if err != nil {
  log.Fatalf("failed to listen: %v", err)
}
var opts []grpc.ServerOption
...
grpcServer := grpc.NewServer(opts...)
pb.RegisterRouteGuideServer(grpcServer, newServer())
grpcServer.Serve(lis)

要构建和启动服务器,我们执行以下操作:

  1. 指定要使用的端口来监听客户端请求:
    lis, err := net.Listen(...).
  2. 创建 gRPC 服务器的实例:
    grpc.NewServer(...).
  3. 将我们的服务实现注册到 gRPC 服务器上:
    pb.RegisterRouteGuideServer(grpcServer, ...)
  4. 携带端口信息调用 grpcServer 的 Serve() 进行阻塞等待,直到进程被终止或 Stop() 被调用。