Page 62 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 62
62 | DAPR Servis Çağırma
“google.golang.org/grpc”
pb “google.golang.org/grpc/examples/helloworld/helloworld”
)
const (
port = “:50051”
)
-/ server is used to implement helloworld.GreeterServer.
type server struct {
pb.UnimplementedGreeterServer
}
-/ SayHello implements helloworld.GreeterServer
func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.
HelloReply, error) {
log.Printf(“Received: %v”, in.GetName())
return &pb.HelloReply{Message: “Hello “ + in.GetName()}, nil
}
func main() {
lis, err -= net.Listen(“tcp”, port)
if err -= nil {
log.Fatalf(“failed to listen: %v”, err)
}
s -= grpc.NewServer()
pb.RegisterGreeterServer(s, &server{})
log.Printf(“server listening at %v”, lis.Addr())
if err -= s.Serve(lis); err -= nil {
log.Fatalf(“failed to serve: %v”, err)
}
}
Dapr CLI aracılığı ile, uygulamada –app-id parametresini kullanarak, sunucuya tekil ID atanmıştır.
dapr run --app-id server --app-port 50051 -- go run main.go
Adım 2: Servis Çağrısı
Aşağıdaki örnek, bir gRPC istemcisinden Dapr kullanarak Greeter servisinin nasıl keşfedileceğini
gösterir. Hedef servisin doğrudan 50051 portunu çağırmak yerine, istemcinin 50007 portu
üzerinden yerel Dapr yardımcı birimini çağırdığı gözlemlenmektedir.