Some more information that may be of help. Each user of a client application creates a “session” that is represented in the distributed cache. Each session has its own connection to the third party application. If a user uses multiple client applications they will reuse the same session and connection with the third party application. So when a single node goes down all the user’s sessions need to become “owned” by different nodes.
In the javadoc I do see IgniteEvents.localListen(), but the description says it listens for “local” events. I wouldn’t expect EVT_NODE_LEFT or EVT_NODE_FAILED to be considered local events, so I am a bit confused as to what the method does. Ralph > On Apr 23, 2016, at 6:49 AM, Ralph Goers <[email protected]> wrote: > > From what I understand in the documentation client mode will mean I will lose > high availability, which is the point of using a distributed cache. > > The architecture is such that we have multiple client applications that need > to communicate with the service that has the clustered cache. The client > applications expect to get callbacks when events occur in the third party > application the service is communicating with. If one of the service nodes > fail - for example during a rolling deployment - we need one of the other > nodes to re-establish the connection with the third party so it can continue > to monitor for the events. Note that the service servers are load-balanced so > they may each have an arbitrary number of connections with the third party. > > So I either need a listener that tells me when one of the nodes in the > cluster has left or a way of creating the connection using something ignite > provides so that it automatically causes the connection to be recreated when > a node leaves. > > Ralph > > >> On Apr 23, 2016, at 12:01 AM, Владислав Пятков <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hello Ralph, >> >> I think the correct way is to use client node (with setClientMode - true) >> for control of cluster. Client node is isolated from data processing and not >> subject fail of load. >> Why are you connect each node with third party application instead of to do >> that only from client? >> >> On Sat, Apr 23, 2016 at 4:10 AM, Ralph Goers <[email protected] >> <mailto:[email protected]>> wrote: >> I have an application that is using Ignite for a clustered cache. Each >> member of the cache will have connections open with a third party >> application. When a cluster member stops its connections must be >> re-established on other cluster members. >> >> I can do this manually if I have a way of detecting a node has left the >> cluster, but I am hoping that there is some other recommended way of >> handling this. >> >> Any suggestions? >> >> Ralph >> >> >> >> -- >> Vladislav Pyatkov >
