[
https://issues.apache.org/jira/browse/IGNITE-20922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vladimir Steshin updated IGNITE-20922:
--------------------------------------
Description:
Once we implemented Service Awareness for Java Thin Client, we might 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 `IgniteClient.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 to node B as user required.
We should prevent the redirection call at #5 and call service only on A or B.
And this would help user to choose nodes for loading purposes.
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.
was:
Once we implemented Service Awareness for Java Thin Client, we might 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 `IgniteClient.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 to 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.
> 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
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Once we implemented Service Awareness for Java Thin Client, we might 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
> `IgniteClient.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 to node B as user required.
> We should prevent the redirection call at #5 and call service only on A or B.
> And this would help user to choose nodes for loading purposes.
> 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)