[
https://issues.apache.org/jira/browse/IGNITE-20296?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17822654#comment-17822654
]
Vladislav Pyatkov commented on IGNITE-20296:
--------------------------------------------
Merged 40d14534bc849edbcaa6dc84cf588684226c17e8
> Make a network message handler that would be able to accept ClusterNode as a
> sender
> -----------------------------------------------------------------------------------
>
> Key: IGNITE-20296
> URL: https://issues.apache.org/jira/browse/IGNITE-20296
> Project: Ignite
> Issue Type: Improvement
> Reporter: Denis Chudov
> Assignee: Roman Puchkovskiy
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
> Time Spent: 1h 20m
> Remaining Estimate: 0h
>
> *Motivation*
> With {{MessagingService}} we have an ability to send message using
> {{ClusterNode}} to specify a recipient. But in {{NetworkMessageHandler}} we
> have only ability to receive consistent id of a sender. However, in some
> cases we need node id (for example, knowing that there is no node we the
> given id in a cluster, allows us to not send message there at all, because
> this node has left the topology at least once since it had sent this message
> and therefore this node lost its volatile state)
> Also, the node id should go along with consistent id, so
> {color:#172b4d}{{ClusterNode}} {color}as the argument type is preferred.
> *Definition of done*
> The following interface is available:
> {code:java}
> public interface NetworkMessageHandler {
> /**
> * Method that gets invoked when a network message is received.
> *
> * @param message Message, which was received from the cluster.
> * @param sender Sender node.
> * @param correlationId Correlation id. Used to track correspondence
> between requests and responses. Can be {@code null} if the received
> * message is not a request from a {@link MessagingService#invoke}
> method from another node.
> */
> void onReceived(NetworkMessage message, ClusterNode sender, @Nullable
> Long correlationId);
> } {code}
> Also, the {{MessagingService}} is able to accept an object implementing this
> interface as a message handler.
> *Implementation notes*
> The ClusterNode passed as a sender should have a node id which the sender
> node had at the moment the message was sent.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)