Vladimir Steshin created IGNITE-20922:
-----------------------------------------

             Summary: Java Thin: direct service invocation with 
ClientClusterGroup and Service Awareness
                 Key: IGNITE-20922
                 URL: https://issues.apache.org/jira/browse/IGNITE-20922
             Project: Ignite
          Issue Type: Improvement
            Reporter: Vladimir Steshin


Once we implemented Service Awareness for Java Thin Client, we can improve the 
service invocation with `IgniteClient.services(ClientClusterGroup grp)`

Consider:
1) There is a cluster with some nodes A, B, C, D, F
1) A service is deployed on nodes A,B,C
2) Service Awareness is enabled.
3) User limits the service instance nodes set with `services('node A', 'node 
B')` skipping node C.
4) The thin client requests the service randomly on node C because it has the 
service instance too.
5) Node C redirects the invocation to node A or node B as user required.

We should prevent the redirection call at #5 and call service only on A or B.

It looks simple to intersect passed `ClientClusterGroup` and known set of 
service instance nodes before the service calling. I.e. the client can exclude 
node C from the options where to send the invocation request.

If user chosses `services('node A', 'node B', 'node F')`, where F has no 
service instance, we do not invoke F. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to