github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/cmd/fastcache1e6/prod_grpc.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "github.com/angenalZZZ/gofunc/rpc" 6 "google.golang.org/grpc" 7 "google.golang.org/grpc/credentials" 8 "google.golang.org/grpc/reflection" 9 "google.golang.org/grpc/testdata" 10 ) 11 12 func ProdGRPC() { 13 var opts []grpc.ServerOption 14 if *flagTls { 15 if *flagCert == "" { 16 *flagCert = testdata.Path("server1.pem") 17 } 18 if *flagKey == "" { 19 *flagKey = testdata.Path("server1.key") 20 } 21 cred, err := credentials.NewServerTLSFromFile(*flagCert, *flagKey) 22 if err != nil { 23 _ = fmt.Errorf("failed to generate credentials %v\n", err) 24 return 25 } 26 opts = []grpc.ServerOption{grpc.Creds(cred)} 27 } 28 29 svr := grpc.NewServer(opts...) 30 RegisterCacheServiceServer(svr, defaultService) 31 reflection.Register(svr) 32 33 g, err := rpc.NewGraceGrpc(svr, "tcp", fmt.Sprintf("%d", *flagPort), "log.pid", "log.yaml") 34 if err != nil { 35 _ = fmt.Errorf("failed to new grace grpc: %v\n", err) 36 return 37 } 38 if err = g.Serve(); err != nil { 39 _ = fmt.Errorf("failed to serve: %v\n", err) 40 } 41 }