Skip to content

Instantly share code, notes, and snippets.

@junereycasuga
Created November 21, 2020 09:08
Show Gist options
  • Save junereycasuga/3cbd35e708027043b41b9217a40f2f01 to your computer and use it in GitHub Desktop.
Save junereycasuga/3cbd35e708027043b41b9217a40f2f01 to your computer and use it in GitHub Desktop.
gokit-grpc-demo main entrypoint
package main
import (
"fmt"
"net"
"os"
"os/signal"
"syscall"
"github.com/go-kit/kit/log"
"github.com/go-kit/kit/log/level"
"github.com/junereycasuga/gokit-grpc-demo/endpoints"
"github.com/junereycasuga/gokit-grpc-demo/pb"
"github.com/junereycasuga/gokit-grpc-demo/service"
transport "github.com/junereycasuga/gokit-grpc-demo/transports"
"google.golang.org/grpc"
)
func main() {
var logger log.Logger
logger = log.NewJSONLogger(os.Stdout)
logger = log.With(logger, "ts", log.DefaultTimestampUTC)
logger = log.With(logger, "caller", log.DefaultCaller)
addservice := service.NewService(logger)
addendpoint := endpoints.MakeEndpoints(addservice)
grpcServer := transport.NewGRPCServer(addendpoint, logger)
errs := make(chan error)
go func() {
c := make(chan os.Signal)
signal.Notify(c, syscall.SIGINT, syscall.SIGTERM, syscall.SIGALRM)
errs <- fmt.Errorf("%s", <-c)
}()
grpcListener, err := net.Listen("tcp", ":50051")
if err != nil {
logger.Log("during", "Listen", "err", err)
os.Exit(1)
}
go func() {
baseServer := grpc.NewServer()
pb.RegisterMathServiceServer(baseServer, grpcServer)
level.Info(logger).Log("msg", "Server started successfully 🚀")
baseServer.Serve(grpcListener)
}()
level.Error(logger).Log("exit", <-errs)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment