@@ -23,23 +23,38 @@ package main
23
23
24
24
import (
25
25
"context"
26
+ "flag"
26
27
"fmt"
27
28
"log"
28
29
"net"
29
- "runtime"
30
+ "os"
31
+ "os/signal"
32
+ "syscall"
30
33
"time"
31
34
35
+ "google.golang.org/grpc"
32
36
"google.golang.org/grpc/codes"
37
+ "google.golang.org/grpc/credentials"
33
38
"google.golang.org/grpc/status"
34
39
35
- pb "github.com/iresty/grpc_server_example/proto"
36
- "google.golang.org/grpc"
40
+ pb "github.com/api7/grpc_server_example/proto"
37
41
)
38
42
39
- const (
40
- port = ":50051"
43
+ var (
44
+ grpcAddr = ":50051"
45
+ grpcsAddr = ":50052"
46
+
47
+ crtFilePath = "../t/cert/apisix.crt"
48
+ keyFilePath = "../t/cert/apisix.key"
41
49
)
42
50
51
+ func init () {
52
+ flag .StringVar (& grpcAddr , "grpc-address" , grpcAddr , "address for grpc" )
53
+ flag .StringVar (& grpcsAddr , "grpcs-address" , grpcsAddr , "address for grpcs" )
54
+ flag .StringVar (& crtFilePath , "crt" , crtFilePath , "path to certificate" )
55
+ flag .StringVar (& keyFilePath , "key" , keyFilePath , "path to key" )
56
+ }
57
+
43
58
// server is used to implement helloworld.GreeterServer.
44
59
type server struct {}
45
60
@@ -74,16 +89,39 @@ func (s *server) Plus(ctx context.Context, in *pb.PlusRequest) (*pb.PlusReply, e
74
89
}
75
90
76
91
func main () {
92
+ flag .Parse ()
93
+
94
+ go func () {
95
+ lis , err := net .Listen ("tcp" , grpcAddr )
96
+ if err != nil {
97
+ log .Fatalf ("failed to listen: %v" , err )
98
+ }
99
+ s := grpc .NewServer ()
100
+ pb .RegisterGreeterServer (s , & server {})
101
+ if err := s .Serve (lis ); err != nil {
102
+ log .Fatalf ("failed to serve: %v" , err )
103
+ }
104
+ }()
77
105
78
- runtime .GOMAXPROCS (1 )
106
+ go func () {
107
+ lis , err := net .Listen ("tcp" , grpcsAddr )
108
+ if err != nil {
109
+ log .Fatalf ("failed to listen: %v" , err )
110
+ }
79
111
80
- lis , err := net .Listen ("tcp" , port )
81
- if err != nil {
82
- log .Fatalf ("failed to listen: %v" , err )
83
- }
84
- s := grpc .NewServer ()
85
- pb .RegisterGreeterServer (s , & server {})
86
- if err := s .Serve (lis ); err != nil {
87
- log .Fatalf ("failed to serve: %v" , err )
88
- }
112
+ c , err := credentials .NewServerTLSFromFile (crtFilePath , keyFilePath )
113
+ if err != nil {
114
+ log .Fatalf ("credentials.NewServerTLSFromFile err: %v" , err )
115
+ }
116
+ s := grpc .NewServer (grpc .Creds (c ))
117
+ pb .RegisterGreeterServer (s , & server {})
118
+ if err := s .Serve (lis ); err != nil {
119
+ log .Fatalf ("failed to serve: %v" , err )
120
+ }
121
+ }()
122
+
123
+ signals := make (chan os.Signal , 1 )
124
+ signal .Notify (signals , os .Interrupt , syscall .SIGTERM )
125
+ sig := <- signals
126
+ log .Printf ("get signal %s, exit\n " , sig .String ())
89
127
}
0 commit comments