I don’t know that the cluster singleton service would work as that would result in all the user’s sessions running in a single node. However, the cache key affinity service sounds like it would be a great fit.
Ralph > On Apr 26, 2016, at 6:02 AM, Alexei Scherbakov <[email protected]> > wrote: > > Hi, > > Why not use cluster singleton service? > You should establish your connections in the service init method call. > Please check [1] for details > Does it work for you? > > [1] https://apacheignite.readme.io/docs/cluster-singletons#cluster-singleton > <https://apacheignite.readme.io/docs/cluster-singletons#cluster-singleton> > > 2016-04-26 14:44 GMT+03:00 Vladimir Ozerov <[email protected] > <mailto:[email protected]>>: > Hi Ralph, > > Yes, this is how we normally respond to node failures - by listening events. > However, please note that you should not perform heavy and blocking > operations in the callback as it might have adverse effects on nodes > communication. Instead, it is better to move heavy operations into separate > thread or thread pool. > > Vladimir. > > On Mon, Apr 25, 2016 at 2:54 PM, Ralph Goers <[email protected] > <mailto:[email protected]>> wrote: > Great, thanks! > > Is listening for that the way you would implement what I am trying to do? > > Ralph > > On Apr 25, 2016, at 4:22 AM, Vladimir Ozerov <[email protected] > <mailto:[email protected]>> wrote: > >> Ralph, >> >> EVT_NODE_LEFT and EVT_NODE_FAILED occur on local node. They essentially mean >> "I saw that remote node went down". >> >> Vladimir. >> >> On Sat, Apr 23, 2016 at 5:48 PM, Ralph Goers <[email protected] >> <mailto:[email protected]>> wrote: >> 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] >>> <mailto:[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 >>> >> >> > > > > > -- > > Best regards, > Alexei Scherbakov
