in grpc-xds/greeter-go/pkg/server/server.go [211:236]
func serve(logger logr.Logger, c Config, servingGRPCServer grpcserver, healthServer *health.Server, healthGRPCServer *grpc.Server) error {
servingListener, err := net.Listen("tcp4", fmt.Sprintf(":%d", c.ServingPort))
if err != nil {
return fmt.Errorf("could not create TCP listener on gRPC serving port=%d: %w", c.ServingPort, err)
}
healthListener, err := net.Listen("tcp4", fmt.Sprintf(":%d", c.HealthPort))
if err != nil {
return fmt.Errorf("could not create TCP listener on gRPC health port=%d: %w", c.HealthPort, err)
}
httpHealthListener, err := net.Listen("tcp4", fmt.Sprintf(":%d", c.HTTPHealthPort))
if err != nil {
return fmt.Errorf("could not create TCP listener on HTTP health port=%d: %w", c.HealthPort, err)
}
logger.V(1).Info("Greeter service listening", "port", c.ServingPort, "healthPort", c.HealthPort, "httpHealthPort", c.HTTPHealthPort, "nextHop", c.NextHop)
go func() {
err := servingGRPCServer.Serve(servingListener)
if err != nil {
healthServer.SetServingStatus("", healthpb.HealthCheckResponse_NOT_SERVING)
healthServer.SetServingStatus(helloworldpb.Greeter_ServiceDesc.ServiceName, healthpb.HealthCheckResponse_NOT_SERVING)
}
}()
go func() {
listenHTTPHealth(logger, httpHealthListener, healthServer)
}()
return healthGRPCServer.Serve(healthListener)
}