I have 2 microservices with common proto-file:
service GeoService {
rpc GetGeoPoint (GeoRequest) returns (GeoPoint) {};
rpc CreateGeoPoint (GeoPoint) returns (GeoPoint) {};
}
message GeoRequest {
int32 id = 5;
string dateTime = 6;
}
message GeoPoint {
int32 id = 1;
int32 latitude = 2;
int32 longitude = 3;
string dateTime = 4;
}
1 microservice: Running on port 8081. Realise gRPC-client on Akka.grpc. I don't override automatically generated GeoService methods, as their only aim is to pass the request (GeoRequest or GeoPoint) to another microservice.
Connection with server is carried out by:
val clientSettings = GrpcClientSettings.connectToServiceAt("127.0.0.1", 8080).withTls(false)
val client: GeoServiceClient = GeoServiceClient(clientSettings)
And method call:
val savedGeoPoint = client.createGeoPoint(geoPoint)
2 microservice: Running on port 8080. Realise gRPC-client on scalapb-runtime-grpc (not Akka grpc). Server methods overrided for saving some data in store and retrieving saved data from store:
override def createGeoPoint(geoPoint: GeoPoint): Future[GeoPoint] =
GeoRepository.save(geoPoint)
In fact client in 1 mictoservice successfully invoke createGeoPoint-method in server (2 microservice). Incoming data saved to store. But result don't return to the client. Method "val savedGeoPoint = client.createGeoPoint(geoPoint)" in Client-microservice don't return any result.
Am I missing something usefull?