mirror of
https://github.com/linka-cloud/grpc.git
synced 2025-06-22 09:12:28 +00:00
add registry base interface, mdns, noop implementations, add resolver, client
This commit is contained in:
@ -3,8 +3,11 @@ package main
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"gitlab.bertha.cloud/partitio/lab/grpc/client"
|
||||
"gitlab.bertha.cloud/partitio/lab/grpc/registry/mdns"
|
||||
"gitlab.bertha.cloud/partitio/lab/grpc/service"
|
||||
)
|
||||
|
||||
@ -28,21 +31,29 @@ func (g *GreeterHandler) SayHelloStream(req *HelloStreamRequest, s Greeter_SayHe
|
||||
}
|
||||
|
||||
func main() {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
name := "greeter"
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
done := make(chan struct{})
|
||||
ready := make(chan struct{})
|
||||
defer cancel()
|
||||
var svc service.Service
|
||||
var err error
|
||||
svc, err = service.New(
|
||||
service.WithContext(ctx),
|
||||
service.WithName("Greeting"),
|
||||
service.WithName(name),
|
||||
service.WithVersion("v0.0.1"),
|
||||
service.WithAddress("0.0.0.0:9991"),
|
||||
service.WithRegistry(mdns.NewRegistry()),
|
||||
service.WithReflection(true),
|
||||
service.WithSecure(true),
|
||||
service.WithAfterStart(func() error {
|
||||
fmt.Println("Server listening on", svc.Options().Address())
|
||||
close(ready)
|
||||
return nil
|
||||
}),
|
||||
service.WithAfterStop(func() error {
|
||||
fmt.Println("Stopping server")
|
||||
close(done)
|
||||
return nil
|
||||
}),
|
||||
)
|
||||
@ -50,7 +61,30 @@ func main() {
|
||||
panic(err)
|
||||
}
|
||||
RegisterGreeterServer(svc.Server(), &GreeterHandler{})
|
||||
if err := svc.Start(); err != nil {
|
||||
panic(err)
|
||||
go func() {
|
||||
if err := svc.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}()
|
||||
<-ready
|
||||
s, err := client.New(
|
||||
client.WithRegistry(mdns.NewRegistry()),
|
||||
client.WithSecure(true),
|
||||
)
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
conn, err := s.Dial("greeter","v0.0.1")
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
g := NewGreeterClient(conn)
|
||||
defer cancel()
|
||||
res, err := g.SayHello(context.Background(), &HelloRequest{Name: "test"})
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
logrus.Infof("received message: %s", res.Message)
|
||||
cancel()
|
||||
<-done
|
||||
}
|
||||
|
Reference in New Issue
Block a user