В одной из моих служб, которая является моим балансировщиком нагрузки, я получаю следующую ошибку при вызове метода сервера в одной из моих развернутых служб:
Ошибка rpc: код = нереализованный desc = неизвестный сервис fooService.FooService
У меня есть несколько других сервисов, настроенных с помощью gRPC, и они отлично работают. Просто кажется, что это именно этот, и мне интересно, не потому ли, что это балансировщик нагрузки?
func GetResult(w http.ResponseWriter, r *http.Request) {
conn, errOne := grpc.Dial("redis-gateway:10006", grpc.WithInsecure())
defer conn.Close()
rClient := rs.NewRedisGatewayClient(conn)
result , errTwo := rClient.GetData(context.Background(), &rs.KeyRequest{Key: "trump", Value: "trumpVal"}, grpc.WithInsecure())
fmt.Fprintf(w, "print result: %s \n", result) //prints nil
fmt.Fprintf(w, "print error one: %v \n", errOne) // prints nil
fmt.Fprintf(w, "print error two: %s \n", errTwo) // prints error
}
Ошибка говорит о том, что службы с именем fooService.FooService не существует, что верно, потому что имя DNS для службы, которую я вызываю, называется foo-service. Однако это точно такая же настройка для других моих сервисов, которые используют gRPC и работают нормально. Также мои прото-файлы настроены правильно, так что это не проблема.
сервер, которому я звоню:
func main() {
lis, err := net.Listen("tcp", ":10006")
if err != nil {
log.Fatalf("failed to listen: %v", err)
}
grpcServer := grpc.NewServer()
newServer := &RedisGatewayServer{}
rs.RegisterRedisGatewayServer(grpcServer, newServer)
if err := grpcServer.Serve(lis); err != nil {
log.Fatalf("failed to serve: %v", err)
}
}
Функция, к которой я пытаюсь получить доступ от клиента:
func (s *RedisGatewayServer) GetData(ctx context.Context, in *rs.KeyRequest)(*rs.KeyRequest, error) {
return in, nil
}
Мои файлы docker и yaml верны, также с правильным именем и портами.
unknown service fooServcie.FooService
это опечатка? - person Hana Alaydrus   schedule 13.05.2018