(l net.Listener, tlsCfg *tls.Config, closer *z.Closer)
| 454 | } |
| 455 | |
| 456 | func serveGRPC(l net.Listener, tlsCfg *tls.Config, closer *z.Closer) { |
| 457 | defer closer.Done() |
| 458 | |
| 459 | x.RegisterExporters(Alpha.Conf, "dgraph.alpha") |
| 460 | |
| 461 | unary := []grpc.UnaryServerInterceptor{audit.AuditRequestGRPC} |
| 462 | if zi := ZanzibarUnaryInterceptor(); zi != nil { |
| 463 | unary = append(unary, zi) |
| 464 | } |
| 465 | stream := []grpc.StreamServerInterceptor{audit.AuditStreamGRPC} |
| 466 | if zs := ZanzibarStreamInterceptor(); zs != nil { |
| 467 | stream = append(stream, zs) |
| 468 | } |
| 469 | |
| 470 | opt := []grpc.ServerOption{ |
| 471 | grpc.MaxRecvMsgSize(x.GrpcMaxSize), |
| 472 | grpc.MaxSendMsgSize(x.GrpcMaxSize), |
| 473 | grpc.MaxConcurrentStreams(1000), |
| 474 | grpc.StatsHandler(otelgrpc.NewServerHandler()), |
| 475 | grpc.ChainUnaryInterceptor(unary...), |
| 476 | grpc.ChainStreamInterceptor(stream...), |
| 477 | } |
| 478 | if tlsCfg != nil { |
| 479 | tlsCfg.NextProtos = []string{"h2"} |
| 480 | opt = append(opt, grpc.Creds(credentials.NewTLS(tlsCfg))) |
| 481 | } |
| 482 | |
| 483 | s := grpc.NewServer(opt...) |
| 484 | api.RegisterDgraphServer(s, &edgraph.Server{}) |
| 485 | hapi.RegisterHealthServer(s, health.NewServer()) |
| 486 | worker.RegisterZeroProxyServer(s) |
| 487 | RegisterZanzibar(s) |
| 488 | |
| 489 | err := s.Serve(l) |
| 490 | glog.Errorf("GRPC listener canceled: %v\n", err) |
| 491 | s.Stop() |
| 492 | } |
| 493 | |
| 494 | func setupMcp(baseMux *http.ServeMux, connectionString, url string, readOnly bool) error { |
| 495 | s, err := mcp.NewMCPServer(connectionString, readOnly) |
no test coverage detected