Add entrypoint
This commit is contained in:
73
examples/go-kit/main.go
Normal file
73
examples/go-kit/main.go
Normal file
@@ -0,0 +1,73 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
|
||||
"github.com/go-kit/kit/log"
|
||||
"github.com/gorilla/handlers"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
session_pb "github.com/moul/protoc-gen-gotemplate/examples/go-kit/services/session"
|
||||
session_endpoints "github.com/moul/protoc-gen-gotemplate/examples/go-kit/services/session/gen/endpoints"
|
||||
session_grpctransport "github.com/moul/protoc-gen-gotemplate/examples/go-kit/services/session/gen/transports/grpc"
|
||||
session_httptransport "github.com/moul/protoc-gen-gotemplate/examples/go-kit/services/session/gen/transports/http"
|
||||
sessionsvc "github.com/moul/protoc-gen-gotemplate/examples/go-kit/services/session/svc"
|
||||
)
|
||||
|
||||
func main() {
|
||||
mux := http.NewServeMux()
|
||||
ctx := context.Background()
|
||||
errc := make(chan error)
|
||||
s := grpc.NewServer()
|
||||
var logger log.Logger
|
||||
{
|
||||
logger = log.NewLogfmtLogger(os.Stdout)
|
||||
logger = log.NewContext(logger).With("ts", log.DefaultTimestampUTC)
|
||||
logger = log.NewContext(logger).With("caller", log.DefaultCaller)
|
||||
}
|
||||
|
||||
// initialize services
|
||||
{
|
||||
svc := sessionsvc.New()
|
||||
endpoints := session_endpoints.MakeEndpoints(svc)
|
||||
srv := session_grpctransport.MakeGRPCServer(ctx, endpoints)
|
||||
session_pb.RegisterSessionServiceServer(s, srv)
|
||||
session_httptransport.RegisterHandlers(ctx, svc, mux, endpoints)
|
||||
}
|
||||
{
|
||||
//svc := sprintsvc.New()
|
||||
|
||||
}
|
||||
|
||||
// start servers
|
||||
go func() {
|
||||
c := make(chan os.Signal, 1)
|
||||
signal.Notify(c, syscall.SIGINT, syscall.SIGTERM)
|
||||
errc <- fmt.Errorf("%s", <-c)
|
||||
}()
|
||||
|
||||
go func() {
|
||||
logger := log.NewContext(logger).With("transport", "HTTP")
|
||||
logger.Log("addr", ":8000")
|
||||
errc <- http.ListenAndServe(":8000", handlers.LoggingHandler(os.Stderr, mux))
|
||||
}()
|
||||
|
||||
go func() {
|
||||
logger := log.NewContext(logger).With("transport", "gRPC")
|
||||
ln, err := net.Listen("tcp", ":9000")
|
||||
if err != nil {
|
||||
errc <- err
|
||||
return
|
||||
}
|
||||
logger.Log("addr", ":9000")
|
||||
errc <- s.Serve(ln)
|
||||
}()
|
||||
|
||||
logger.Log("exit", <-errc)
|
||||
}
|
Reference in New Issue
Block a user